logo

C++ で文字列を比較するさまざまな方法

このセクションでは、C++ プログラミング言語で指定された文字列を比較するさまざまな方法について説明します。文字列の比較により、最初の文字列が別の文字列と等しいかどうかが判断されます。例: HELLO と Hello は 2 つの異なる文字列です。

C++ で文字列を比較するさまざまな方法

C++ プログラミング言語では、次のように文字列を比較するさまざまな方法があります。

  1. strcmp()関数の使用
  2. Compare() 関数の使用
  3. 関係演算子の使用
  4. For ループと If ステートメントの使用
  5. ユーザー定義関数の使用

strcmp() 関数

strcmp() は、事前定義されたライブラリ関数です。 string.h ヘッダファイル。 strcmp() 関数は、辞書編集ベースで 2 つの文字列を比較します。これは、strcmp() 関数が最初の文字列と 2 番目の文字列の比較を開始し、両方の文字列のすべての文字が同じになるか、NULL 文字が検出されるまで、文字ごとに比較を開始することを意味します。

構文

 int strcmp ( const char *leftstr, const char *rightstr ); 

パラメーター:

左文字列: 左側の文字列の文字を定義します。

右文字列: これは、正しい文字列の文字を定義します。

戻り値:

leftstr 文字列は、各文字を左から 2 番目の文字列と両方の文字列の終わりまで比較します。また、両方の文字列が等しい場合、strcmp() 関数は文字列が等しいことを返します。それ以外の場合、文字列は等しくありません。

C++ の strcmp() 関数を使用して文字列を比較するプログラムを作成してみましょう。

プログラム1.cpp

 #include using namespace std; #include int main () { // declare strings const char *str1 = ' Welcome to JavaTpoint'; const char *str2 = ' Welcome to JavaTpoint'; const char *str3 = ' JavaTpoint'; const char *str4 = ' Javatpoint'; cout << ' String 1: ' << str1 << endl; cout << ' String 2: ' << str2 << endl; // use strcmp() function to validate the strings are equal if (strcmp (str1, str2) == 0) { cout << ' 
 Both strings are equal. ' << endl; } else { cout << ' The strings are not equal. ' << endl; } cout << ' 
 String 3: ' << str3 << endl; cout << ' String 4: ' << str4 << endl; // use strcmp() function to validate the strings are equal if (strcmp (str3, str4) == 0) { cout << ' 
 Both strings are equal. ' << endl; } else cout << ' 
 The strings are not equal. '; return 0; } 

出力

 String 1: Welcome to JavaTpoint String 2: Welcome to JavaTpoint Both strings are equal. String 3: JavaTpoint String 4: Javatpoint The strings are not equal. 

比較()関数

Compare() 関数は、C++ 言語の事前定義されたライブラリ関数です。 Compare() 関数は、指定された 2 つの文字列を比較し、一致するケースに基づいて次の結果を返します。

  1. 両方の文字列が同じ場合、関数は 0 を返します。
  2. 最初の文字列の文字値が 2 番目の文字列より小さい場合、関数は戻り値を返します。<0.< li>
  3. 2 番目の文字列が最初の文字列より大きい場合、関数は 0 より大きい、または >0 を返します。

構文

Javaの比較
 int compare (const string &amp;str) const; 

C++ の Compare() 関数を使用して 2 つの文字列を比較する簡単なプログラムを作成してみましょう。

プログラム2.cpp

 #include using namespace std; int main () { string str1, str2; // declare string variable cout &lt;&gt; str1; cout &lt;&gt; str2; // use compare() function to compare the second string with first string int i = str1.compare(str2); if ( i <0) { cout << str1 ' is smaller than str2 string' <<endl; } else if ( i> 0) { cout &lt;&lt; str2 &lt;&lt; &apos; is greater than &apos; &lt;&lt; str1 &lt;&lt; &apos; string.&apos; &lt;&lt; endl; } else // i == 0; { cout &lt;&lt; &apos; Both strings are equal.&apos;; } return 0; } </0)>

出力

 1st Run: Enter the string 1: Program Enter the string 2: program Program is smaller than program string 2nd Run: Enter the string 1: APPLE Enter the string 2: APPLE Both strings are equal. 

関係演算子

C++ で 2 つの文字列または数値を比較するために使用される演算子です。 C++ には、「==」、「!=」、>、などのさまざまな種類の関係演算子があります。

プログラム3.cpp

 #include using namespace std; int main () { // declare string variables string str1; string str2; cout &lt;&lt; &apos; Enter the String 1: &apos; &lt;&gt; str1; cout &lt;&lt; &apos; Enter the String 2: &apos; &lt;&gt; str2; // use &apos;==&apos; equal to operator to check the equality of the string if ( str1 == str2) { cout &lt;&lt; &apos; String is equal.&apos; &lt;&lt; endl; } else { cout &lt;&lt; &apos; String is not equal.&apos; &lt;&lt; endl; } return 0; } 

出力

AndroidでGoogleアカウントをログアウトする
 Enter the String 1: JavaTpoint Enter the String 2: javatpoint String is not equal. 

2nd実行:

 Enter the String 1: Program Enter the String 2: Program String is equal. 

等しくない (!=) 関係演算子を使用して 2 つの文字列を比較する

C++ で Not Equal To (!=) 演算子を使用して、文字列が等しいかどうかを比較するプログラムを作成してみましょう。

プログラム4.cpp

 #include using namespace std; int main () { // declare string variables string str1; string str2; cout &lt;&lt; &apos; Enter the String 1: &apos; &lt;&gt; str1; cout &lt;&lt; &apos; Enter the String 2: &apos; &lt;&gt; str2; // use &apos;!=&apos; not equal to operator to check the equality of the string if ( str1 != str2) { cout &lt;&lt; &apos; String is not equal.&apos; &lt;&lt; endl; } else { cout &lt;&lt; &apos; String is equal.&apos; &lt;&lt; endl; } return 0; } 

出力

 Enter the String 1: JAVATpoint Enter the String 2: JavaTPOINT String is not equal. 

2nd走る:

 Enter the String 1: HELLO Enter the String 2: HELLO String is equal. 

C++ で for ループと if ステートメントを使用して 2 つの文字列を比較する

プログラム5.cpp

 #include using namespace std; int main () { char s1[50], s2[50]; // declare character array int i, disp; cout &lt;&lt; &apos; Enter the String 1: &apos; &lt;&gt; s1; cout &lt;&lt; &apos; Enter the String 2: &apos; &lt;&gt; s2; for (i = 0; s1[i] == s2[i] &amp;&amp; s1[i] == &apos;&apos;; i++); if (s1[i] <s2[i]) 1 2 { cout < s2[i]) << ' string is less than 1'; } else equal to 2'; return 0; pre> <p> <strong>Output</strong> </p> <pre> Enter the String 1: WELCOME Enter the String 2: WELCOME String 1 is equal to String 2 </pre> <h3>Compare two strings using the User-defined function in C++</h3> <p>Let&apos;s create a simple program to compare the first string with another string using the user-defined function in C++.</p> <p> <strong>Program6.cpp</strong> </p> <pre> #include using namespace std; void RelationalCompare ( string str1, string str2) { // use relational not equal operator if ( str1 != str2) { cout &lt;&lt; str1 &lt;&lt; &apos; is not equal to &apos; &lt;&lt; str2 &lt;&lt; &apos; string. &apos; &lt; str2) { cout &lt;&lt; str1 &lt;&lt; &apos; is greater than &apos; &lt;&lt; str2 &lt;&lt; &apos; string.&apos; &lt;&lt; endl; } else { cout &lt;&lt; str2 &lt;&lt; &apos; is greater than &apos; &lt;&lt; str1 &lt;&lt; &apos; string.&apos; &lt;&lt; endl; } } else cout &lt;&lt; str1 &lt;&lt; &apos; is equal to &apos; &lt;&lt; str2 &lt;&lt; &apos; string.&apos; &lt;&lt; endl; } int main () { string str1 ( &apos;JavaT&apos;); string str2 ( &apos;Tpoint&apos;); // call function RelationalCompare (str1, str2); string str3 (&apos;JavaTpoint&apos;); string str4 (&apos;JavaTpoint&apos;); RelationalCompare (str3, str4); return 0; } </pre> <p> <strong>Output</strong> </p> <pre> JavaT is not equal to Tpoint string. Tpoint is greater than JavaT string. JavaTpoint is equal to JavaTpoint string. </pre> <hr></s2[i])>

C++ のユーザー定義関数を使用して 2 つの文字列を比較する

C++ のユーザー定義関数を使用して、最初の文字列を別の文字列と比較する簡単なプログラムを作成してみましょう。

プログラム6.cpp

 #include using namespace std; void RelationalCompare ( string str1, string str2) { // use relational not equal operator if ( str1 != str2) { cout &lt;&lt; str1 &lt;&lt; &apos; is not equal to &apos; &lt;&lt; str2 &lt;&lt; &apos; string. &apos; &lt; str2) { cout &lt;&lt; str1 &lt;&lt; &apos; is greater than &apos; &lt;&lt; str2 &lt;&lt; &apos; string.&apos; &lt;&lt; endl; } else { cout &lt;&lt; str2 &lt;&lt; &apos; is greater than &apos; &lt;&lt; str1 &lt;&lt; &apos; string.&apos; &lt;&lt; endl; } } else cout &lt;&lt; str1 &lt;&lt; &apos; is equal to &apos; &lt;&lt; str2 &lt;&lt; &apos; string.&apos; &lt;&lt; endl; } int main () { string str1 ( &apos;JavaT&apos;); string str2 ( &apos;Tpoint&apos;); // call function RelationalCompare (str1, str2); string str3 (&apos;JavaTpoint&apos;); string str4 (&apos;JavaTpoint&apos;); RelationalCompare (str3, str4); return 0; } 

出力

 JavaT is not equal to Tpoint string. Tpoint is greater than JavaT string. JavaTpoint is equal to JavaTpoint string.