C++における文字列連結:文字列を連結するための4つの方法
この記事では、C++言語で文字列の連結を行う様々な方法を紹介します。この方法は、プログラミングのさまざまな目的で使用することができます。しかし、一般的には、異なる場所から2つの文字列を組み合わせて一緒に配置するという概念は同じです。
C++における文字列結合のテクニック
C++で文字列を結合する際には、次のテクニックが考慮されることがあります。
- C++ concatenate (+) operator
- The strcat() method
- C++ append() function
- Using C++ for loop for concatenation
1. 文字列連結におけるC++の「+」演算子
C++の「+」演算子を使えば、二つの文字列を簡単に結合することができます。
「+」演算子は、2つの入力文字列を追加して連結された新しい文字列を返します。
文法:
string1 + string2;
午後の会議はキャンセルされました。
午後のミーティングは中止されました。
#include <bits/stdc++.h>
using namespace std;
int main()
{ string str1="", str2="";
cout<<"Enter String 1:\n";
cin>>str1;
cout<<"Enter String 2:\n";
cin>>str2;
string res = str1 + str2;
cout<<"Concatenated String:"<<endl;
cout<<res;
return 0;
}
出力:
Enter String 1:
Journal
Enter String 2:
Dev
Concatenated String:
JournalDev
2. C++のstrcat()メソッド
C++には文字列を連結するための組み込みメソッドがあります。strcat()メソッドはC++で文字列を連結するために使用されます。
strcat()関数は、char配列を入力として受け取り、関数に渡された入力値を連結します。
文法:
strcat(char *array1, char *array2)
この本は非常に興味深いです。
(Kono moto wa hijōni kyōmi fukai desu.)
-> この本は非常に面白いです。
(Kono moto wa hijōni omoshiroi desu.)
#include <bits/stdc++.h>
using namespace std;
int main()
{
char str1[100] = "Journal";
char str2[100]= "Dev";
cout<<"Concatenated String:"<<endl;
strcat(str1, str2);
cout<<str1;
return 0;
}
上記の例では、サイズが100文字のchar配列str1とstr2を宣言しました。そして、char配列str1とstr2をstrcat()関数に渡して連結された文字列を結果として得ました。
出力:
Concatenated String:
JournalDev
例2:
#include <bits/stdc++.h>
using namespace std;
int main()
{
char str1[100], str2[100];
cout << "Enter String 1:\n";
cin.getline(str1, 100);
cout << "Enter String 2:\n";
cin.getline(str2, 100);
cout<<"Concatenated String:"<<endl;
strcat(str1, str2);
cout<<str1;
return 0;
}
上記の例では、C++のgetline()関数を使用してユーザーから文字列入力値を受け取ります。この関数は、ターミナルから文字単位で入力を取得します。
出力:
Enter String 1:
JournalDev-
Enter String 2:
Python
Concatenated String:
JournalDev-Python
3. C++における文字列の連結におけるappend()メソッド
C++にはもう一つの組み込みメソッド、append()があります。append()メソッドは文字列を連結するために使用されます。このメソッドは文字列をパラメータとして受け取り、他の文字列オブジェクトの末尾に追加します。
文法:
string1.append(string2);
例えば:
今日はとても暑いです。
きょうはとても暑いです。
パーティーは昨日ありました。
パーティーはきのうありました。
私はその映画を見たことがありません。
わたしはそのえいがをみたことがありません。
#include <bits/stdc++.h>
using namespace std;
int main()
{ string str1="", str2="";
cout<<"Enter String 1:\n";
cin>>str1;
cout<<"Enter String 2:\n";
cin>>str2;
str1.append(str2);
cout<<"Concatenated String:"<<endl;
cout<<str1;
return 0;
}
上記の例では、str2をappend()関数のパラメータとして渡しました。さらに、append()関数は文字列オブジェクトstr2の内容を文字列オブジェクトstr1の末尾に追加します。これによって、文字列の連結の目的が果たされます。
出力:
Enter String 1:
Journal
Enter String 2:
Dev
Concatenated String:
JournalDev
4. C++のforループを使用する。
文字列を連結するために、組み込み関数の必要なしにC++のforループを使用することができます。
「私は日本語を勉強しています。」
【ぼくはにほんごをべんきょうしています。】
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char x[100]="Journal", y[100]="Dev";
cout<<"String 1:\n";
cout<<x<<endl;
cout<<"String 2:\n";
cout<<y<<endl;
int p;
for(p=0; x[p] != '\0'; p++);//pointing to the index of the last character of x
for(int q=0; y[q] != '\0'; q++,p++)
{
x[p]=y[q];
}
x[p]='\0';
cout<<"Concatenated String:\n";
cout<<x<<endl;
return 0;
}
上記のコードスニペットでは、主にxとyの2つのchar配列の入力を受け付けています。
さらに、私たちは文字列のx char配列をポインタ変数pがxの最後の文字のインデックスを指すまでトラバースしてきました。
それから、私たちは文字配列yの入力をトラバースし、yの各文字をxに結合します。
最終的に、連結された文字列が結果として含まれるように、char配列xの最後にヌル文字(’\0’)を追加します。
出力:
String 1:
Journal
String 2:
Dev
Concatenated String:
JournalDev
結論
では、この記事ではC++言語における文字列を連結するための様々なテクニックを理解しました。
参考文献
- Concatenate String in C++ – StackOverFlow