C++ で 2つの文字列を連結する方法

胡金庫 2023年10月12日
  1. C++ で 2つの文字列を連結するには += 演算子を使用する
  2. C++ で 2つの文字列を連結するには append() メソッドを用いる
C++ で 2つの文字列を連結する方法

この記事では、C++ で 2つの文字列を連結する方法について、複数の方法を示します。

C++ で 2つの文字列を連結するには += 演算子を使用する

後者はインプレース文字列連結に直接変換されます。この演算子は string 型変数、文字列リテラル、C スタイル文字列、文字を string オブジェクトに連結するために使われます。以下の例は、2つの string 型変数が互いに結合され、コンソールに出力される様子を示しています。

#include <iostream>
#include <string>

using std::copy;
using std::cout;
using std::endl;
using std::string;

int main() {
  string string1("Starting string ");
  string string2("end of the string ");

  cout << "string1:  " << string1 << endl;
  string1 += string2;
  cout << "string1:  " << string1 << endl;

  return EXIT_SUCCESS;
}

出力:

string1:  Starting string
string1:  Starting string end of the string

あるいは、2つの string 変数をパラメータとして受け取り、連結した結果を返すカスタム関数を作成することもできます。string は移動コンストラクタを持っているので、長い文字列を値で返すのは非常に効率的であることに注意してください。関数 concTwoStrings は新しい string オブジェクトを作成し、それを変数 string2 に代入します。

#include <iostream>
#include <string>

using std::copy;
using std::cout;
using std::endl;
using std::string;

string concTwoStrings(const string& s1, const string& s2) { return s1 + s2; }

int main() {
  string string1("Starting string ");

  string string2 = concTwoStrings(string1, " conc two strings");
  cout << "string2: " << string2 << endl;

  return EXIT_SUCCESS;
}

出力:

string2: Starting string  conc two strings

C++ で 2つの文字列を連結するには append() メソッドを用いる

appendstd::string クラスの組み込みメソッドです。このメソッドは豊富な機能を提供しており、そのすべてはマニュアルページで紹介されています。この例では、リテラル文字列の値を string オブジェクトに連結するためにこれを利用します。

#include <iostream>
#include <string>

using std::copy;
using std::cout;
using std::endl;
using std::string;

int main() {
  string string("Temporary string");

  string.append(" appended sequence");
  cout << string << endl;

  return EXIT_SUCCESS;
}

出力:

Temporary string appended sequence

append メソッドは this オブジェクトへのポインタを返すので、複数回の連鎖関数呼び出しと string 変数への複数回の追加を行うことができます。このメソッドは以下の構文でイニシャライザの文字リストを追加することもできます。append({ 'a', 'b', 'c', 'd'})

#include <iostream>
#include <string>

using std::copy;
using std::cout;
using std::endl;
using std::string;

int main() {
  string string1("Starting strings");
  string string2("end of the string");

  string1.append(" ").append(string2).append("\n");
  cout << string1;

  return EXIT_SUCCESS;
}

出力:

Starting string end of the string
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - C++ String