C++ 文字列を結合するサンプル

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になります。

関連の記事

C++ 文字列の一部を取得するサンプル(substr)

△上に戻る