0

私は持っていますstd::string、どうすれば:文字を置き換えることができ%%ますか?

std::replace( s.begin(), s.end(), ':', '%%' ); 上記のコードは機能しません:

エラー引数リストに一致するインスタンスはありません

ありがとう!

4

1 に答える 1

8

:残念ながら、 1回のショットですべてのキャラクターを置き換える方法はありません。ただし、次のようにループで実行できます。

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;

このプログラムは印刷します

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

最初のコロンのみを置き換える必要がある場合は、ループの本体を、その周りのループなしで単独で使用します。

于 2013-01-01T18:52:51.000 に答える