文字列を扱うstringのメンバ関数。
insert(start, str); insert(start, str, start2, num);
insert()は文字列を挿入する関数。上の形式はstartの位置にstrを挿入し、下の形式はstartの位置にstrのstart2の位置からnum文字を挿入する。
replace(start, num, str); replace(start, num, str, start2, num2);
replace()は文字列を置換する関数。上の形式はstartの位置からnum文字をstrで置換する。下の形式はstartの位置からnum文字をstrのstart2の位置からnum2文字で置換する。
erase(start, num);
erase()は文字列を削除する関数。start位置からnum文字削除する。
実際に試してみたプログラムが次の通り。
#include <iostream> #include <string> using namespace std; int main() { string str1("This is a test."); string str2("12345"); string str3("ABCDEF"); // str1の6文字目にstr2を挿入 str1.insert(5, str2); cout << str1 << endl; // str1の8文字目にstr2の4文字目から3文字を挿入 str1.insert(7, str3, 3, 3); cout << str1 << endl; // str1の8文字目から3文字をstr2で置換 str1.replace(7, 3, str2); cout << str1 << endl; // str1の8文字目から5文字をstr3の3文字目から3文字で置換 str1.replace(7, 5, str3, 2, 3); cout << str1 << endl; // str1の6文字目から8文字消去 str1.erase(5, 8); cout << str1 << endl; } 実行結果 This 12345is a test. This 12DEF345is a test. This 1212345345is a test. This 12CDE345is a test. This is a test.
コメントのn文字目の値がメンバ関数の引数の値とずれているのは、文字列の場所を指定するインデックスが0から始まるため。