2018年03月06日
《その321》 stringクラス(7)
string型文字列の replace による置換え
#include <string>
#include <iostream>
using namespace std;
int main() {
//【replace による置換え】
string s0("abcdef");
string s1("012345");
// ◆位置を position で指定
// s0 の 3文字目からの 2文字を、
// "-cd-"に置換え
s0.replace(2, 2, "-cd-");
cout << s0 << '\n'; // "ab-cd-ef"
s0.assign("abcdef");
// 3文字目からの 2文字を、
// "-cd-"の最初の 3文字に置換え
s0.replace(2, 2, "-cd-", 3);
cout << s0 << '\n'; // "ab-cdef"
s0.assign("abcdef");
// s0 の 2文字目からの 4文字を、s1に
// 置換え
s0.replace(1, 4, s1);
cout << s0 << '\n'; // "a012345f"
s0.assign("abcdef");
// s0 の 2文字目からの 4文字を、
// s1 の 2文字目からの 3文字に置換え
s0.replace(1, 4, s1, 1, 3);
cout << s0 << '\n'; // "a123f"
s0.assign("abcdef");
// s0 の 2文字目からの 4文字を、
// s1 の 2文字目から末尾までに置換え
s0.replace(1, 4, s1, 1);
cout << s0 << '\n'; // "a12345f"
s0.assign("abcdef");
// 2文字目からの 4文字を
// 2個の'*'に置換え
s0.replace(1, 4, 2, '*');
cout << s0 << '\n'; // "a**f"
// ◆位置を iterator で指定
s0.assign("abcdef");
// 末尾から 3文字目 〜 末尾までを、
// "XYZ" に置換え
s0.replace(
s0.end() - 3,
s0.end(),
"XYZ"
);
cout << s0 << '\n'; // "abcXYZ"
s0.assign("abcdef");
// 末尾から 3文字目 〜 末尾までを、
// "XYZ" の最初の 2文字に置換え
s0.replace(
s0.end() - 3,
s0.end(), "XYZ", 2
);
cout << s0 << '\n'; // "abcXY"
s0.assign("abcdef");
// 2文字目 〜 末尾から 2文字目までを、
// 8個の'-'に置換え
s0.replace(
s0.begin() + 1,
s0.end() - 1, 8, '-'
);
cout << s0 << '\n'; // "a--------f"
s0.assign("abcdef");
// s0 の末尾から 3文字目 〜 末尾までを、
// s1 に置換え
s0.replace(s0.end() - 3, s0.end(), s1);
cout << s0 << '\n'; // "abc012345"
s0.assign("abcdef");
// s0 の先頭から 2文字目
// 〜 末尾から 2文字目までを、
// s1 の先頭から 2文字目
// 〜 末尾から 2文字目までに置換え
s0.replace(
s0.begin() + 1, s0.end() - 1,
s1.begin() + 1, s1.end() - 1
);
cout << s0 << '\n'; // "a1234f"
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7398458
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック