2013-01-01 46 views
0

我有一個std::string,我怎麼能代替:性格與%%替換字符?與其他兩個

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

錯誤沒有實例的arguement列表匹配

謝謝!

回答

7

不幸的是,有沒有辦法來取代一次性全部:字符。但是你可以做一個循環,這樣的:

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 

如果您需要更換隻有第一個冒號,然後通過自身使用的循環體,不圍繞它的循環。