C++の文字列を結合するサンプルです。
目次
文字列 | +演算子で結合する |
代入演算子で結合する(+=) | |
文字列を追加する(insert) | |
文字列を追加する(append) |
+演算子で結合する
#include <iostream>
using namespace std;
int main() {
string str1 = "あいう";
string str2 = "えお";
cout << (str1 + str2) << endl; //あいうえお
cout << (str1 + "えお") << endl; //あいうえお
//cout << ("あいう" + "えお") << endl; //エラー
return 0;
}
8,9行目は、+演算子で文字列同士、文字列とリテラルを結合しています。
10行目のようにリテラル同士の場合エラーになります。
代入演算子で結合する(+=)
#include <iostream>
using namespace std;
int main() {
string str1 = "かきく";
str1 += "けこ";
cout << str1 << endl; //かきくけこ
return 0;
}
6行目は、代入演算子(+=)で文字列を結合しています。
文字列を追加する(insert)
文字列.insert(位置,"追加する文字列") |
文字列の先頭の位置は0から始まります。
#include <iostream>
using namespace std;
int main() {
string str1 = "abcde";
string str2 = str1.insert(2, "Z");
cout << str2 << endl; //abZcde
string str3 = "abcde";
string str4 = str3.insert(4, "Z");
cout << str4 << endl; //abcdZe
string str11 = "赤黄青";
string str12 = str11.insert(2,"オレンジ");
cout << str12 << endl; //赤オレンジ黄青
string str13 = "赤黄青";
string str14 = str13.insert(4, "オレンジ");
cout << str14 << endl; //赤黄オレンジ青
return 0;
}
日本語の文字は、1文字の長さが2になります。
文字列を追加する(append)
文字列.append(追加する文字列) |
文字列.append(追加する文字列,追加する文字数) |
文字列.append(追加する文字列,位置,文字数) |
#include <iostream>
using namespace std;
int main() {
string str1 = "abcde";
string str2 = str1.append("ABC");
cout << str2 << endl; //abcdeABC
string str3 = "abcde";
string str4 = str3.append("ABC",1);
cout << str4 << endl; //abcdeA
string str5 = "abcde";
string str6 = str5.append("ABC",0,2);
cout << str6 << endl; //abcdeAB
string str11 = "赤黄青";
string str12 = str11.append("オレンジ");
cout << str12 << endl; //赤黄青オレンジ
string str13 = "赤黄青";
string str14 = str13.append("オレンジ", 2);
cout << str14 << endl; //赤黄青オ
string str15 = "赤黄青";
string str16 = str15.append("オレンジ", 0, 4);
cout << str16 << endl; //赤黄青オレ
return 0;
}
日本語の文字は、1文字の長さが2になります。
関連の記事