以下、すべて
#include <iostream> using namespace std;
と書いてあるものとする。
文字列の置換
replace()を使う。取りうる引数はいろいろあるけど、多分一番使うのは以下の例。
string str = "Today is April 19."; str.replace(9, 5, "May"); // strのindex9から5文字分を"May"に置換 cout << str << endl; // "Today is May 19."
特定の文字列を繰り返し置換
例えば"aa bb cc aa bb cc"という文字列が与えられた時、"bb"の部分をすべて"bbbbb"と置換したいとする。以下のコードでいいのかな?
string str = "aa bb cc aa bb cc"; string from = "bb"; string to = "bbbbb"; string::size_type pos = str.find(from); while(pos != string::npos){ str.replace(pos, from.size(), to); pos = str.find(from, pos + to.size()); } cout << str << endl; // "aa bbbbb cc aa bbbbb cc"