Menu
Coddy logo textTech

文字列の比較

CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 22/74。

C++において、文字列の比較は複数の方法で行うことができます。 std::stringはクラスであるため、文字列の比較を直感的かつ簡単にするオーバーロードされた演算子を持っています。

文字列を比較する最も一般的な方法は、比較演算子 (==, !=, <, >, <=, >=) を使用することです。

string str1 = "hello";
string str2 = "hello";
string str3 = "Hello";

bool result1 = (str1 == str2);  // true
bool result2 = (str1 == str3);  // false (大文字と小文字を区別する)
bool result3 = (str1 != str3);  // true

compare()メソッドを使用することもできます。このメソッドは、文字列が等しい場合は0を、最初の文字列が辞書順で小さい場合は負の整数を、大きい場合は正の整数を返します。正確な値は実装依存であることに注意してください。必ずしも-11であるとは限りません:

string str1 = "a";
string str2 = "b";
string str3 = "c";

cout << str2.compare(str1) << endl; 
// 正の値 (bはaの後に来ます)

cout << str2.compare(str3) << endl;
// 負の値 (bはcの前に来ます)

cout << str2.compare(str2) << endl;
// 0 (等しい文字列)

チートシート

C++では、比較演算子またはcompare()メソッドを使用して文字列を比較できます。

比較演算子の使用:

string str1 = "hello";
string str2 = "hello";
string str3 = "Hello";

bool result1 = (str1 == str2);  // true
bool result2 = (str1 == str3);  // false (大文字と小文字を区別)
bool result3 = (str1 != str3);  // true

compare()メソッドの使用:

文字列が等しい場合は0を、最初の文字列が辞書順で小さい場合は0未満を、大きい場合は0より大きい値を返します:

string str1 = "a";
string str2 = "b";
string str3 = "c";

cout << str2.compare(str1) << endl; // 正の値 (bはaの後に来る)
cout << str2.compare(str3) << endl; // 負の値 (bはcの前に来る)
cout << str2.compare(str2) << endl; // 0 (等しい文字列)

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン