(std :: string).find和(std :: string).replace中的参数无效

时间:2015-04-11 18:27:41

标签: c++ eclipse string c++11 cocos2d-x

我使用以下代码替换字符串中的字符串。

以下相同的代码在Visual Studio 2012中工作,但在Eclipse中没有,我无法弄清楚原因。 该错误与find的{​​{1}}和replace函数中的无效参数有关:

std::string

错误消息如下:

void ReplaceStringInPlace(std::string& subject, const std::string& search, const std::string& replace)
{
    // handle error situations/trivial cases
    if (search.length() == 0)
    {
        // searching for a match to the empty string will result in an infinite loop
        return;
    }
    if (subject.length() == 0)
    {
        return;  // nothing to match against
    }
    std::size_t pos = 0;
    while ((pos = subject.find(search, pos)) != std::string::npos)
    {
        subject.replace(pos, search.length(), replace);
        pos += replace.length();
    }
}

问题1: -

在Eclipse中使用这些函数有不同的方法吗?我该怎么做才能使错误消失?

问题2: -

错误消息中Invalid arguments ' Candidates are: ? find(const char *, ?, ?) ? find(const stlpmtx_std::basic_string<char,stlpmtx_std::char_traits<char>,stlpmtx_std::allocator<char>> &, ?) ? find(const char *, ?) ? find(char, ?) ' 符号的含义是什么?

0 个答案:

没有答案