C++ 文字列/文字を置き換える(replace)

C++の文字列または文字を置き換えるサンプルです。

目次

replace 指定した位置の文字列を置き換える
regex_replace 指定した文字をすべて置き換える

指定した位置の文字列を置き換える

文字列.replace(開始位置,長さ,置換する文字列)
  • 開始位置から始まる長さの文字列を置換する文字列で置き換えます。
  • 開始位置は0から始まります。

指定した位置の文字列を置き換えるサンプルです。

#include <iostream>
using namespace std;

int main() {

	string str1 = "aaa-bb";
	cout << str1.replace(0,2, "zz") << endl; //zza-bb

	string str2 = "あああーあああ";
	cout << str2.replace(0,4,"ええ") << endl; //ええあーあああ

	return 0;
}

6行目は、半角の文字です。
7行目は、0から始まる長さ2の文字列を"zz"に置換しています。
9行目は、全角の文字です。
10行目は、0から始まる長さ4の文字列を"ええ"に置換しています。

指定した文字をすべて置き換える

regex_replace(対象の文字列, regex(正規表現を指定),置換する文字)
  • 対象の文字列に対して、正規表現で指定した文字を置換する文字で置き換えます。
  • #include <regex>の記述が必要です。

指定した文字をすべて置き換えるサンプルです。

#include <iostream>
#include <regex>
using namespace std;

int main() {

	string str1 = regex_replace("aaa-bba", regex("a"), "z");
	cout << str1 << endl; //zzz-bbz

	string str2 = regex_replace("あああーいいあ", regex("あ"), "う");
	cout << str2 << endl; //うううーいいう

	return 0;
}

2行目は、<regex>をincludeしています。
7行目の1つめの引数は変更前の文字列です。
2つめの引数のregexは正規表現を指定しています。ここでは"a"という文字を指定しています。
3つめの引数は置換後の文字です。
10行目のregexも正規表現を指定しています。ここでは"あ"という文字を指定しています。

関連の記事

C++ 文字列の位置を取得(find/rfind)
C++ 文字列の一部を取得するサンプル(substr)
C++ 文字列の長さを取得する(length/size)

△上に戻る