我使用以下代码替换字符串中的字符串。
以下相同的代码在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, ?)
'
符号的含义是什么?