用另外两个替换角色

时间:2013-01-01 18:43:04

标签: c++ replace stdstring

我有std::string,如何将:字符替换为%%

std::replace( s.begin(), s.end(), ':', '%%' ); 上面的代码不起作用:

  

错误没有实例与争论列表匹配

谢谢!

1 个答案:

答案 0 :(得分:8)

不幸的是,没有办法一次性替换所有:个字符。但是你可以在循环中完成它,如下所示:

string s = "quick:brown:fox:jumps:over:the:lazy:dog";
int i = 0;
for (;;) {
    i = s.find(":", i);
    if (i == string::npos) {
        break;
    }
    s.replace(i, 1, "%%");
}
cout << s << endl;

此计划prints

quick%%brown%%fox%%jumps%%over%%the%%lazy%%dog

如果你只需要替换第一个冒号,那么就单独使用循环体,不要在它周围循环。