logo

Diferents maneres de comparar cadenes en C++

Aquesta secció tractarà les diferents maneres de comparar les cadenes donades en el llenguatge de programació C++. La comparació de la cadena determina si la primera cadena és igual a una altra cadena o no. Exemple: HELLO i Hello són dues cadenes diferents.

Diferents maneres de comparar cadenes en C++

Hi ha diferents maneres de comparar les cadenes en el llenguatge de programació C++, de la següent manera:

  1. Utilitzant la funció strcmp().
  2. Utilitzant la funció compare().
  3. Ús de l'operador relacional
  4. Utilitzant el bucle For i la instrucció If
  5. Utilitzant la funció definida per l'usuari

funció strcmp().

El strcmp() és una funció de biblioteca predefinida del fitxer corda.h fitxer de capçalera. La funció strcmp() compara dues cadenes sobre una base lexicogràfica. Això vol dir que la funció strcmp() comença a comparar la primera cadena amb la segona, caràcter per caràcter fins que tots els caràcters de les dues cadenes són iguals o es troba un caràcter NULL.

Sintaxi

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

Paràmetres:

leftstr: Defineix els caràcters de la cadena esquerra.

rightstr: Defineix els caràcters de la cadena correcta.

Devolucions:

La cadena leftstr compara cada caràcter amb la segona cadena des del costat esquerre fins al final de les dues cadenes. I, si les dues cadenes són iguals, la funció strcmp() retorna que les cadenes són iguals. En cas contrari, les cordes no són iguals.

què és el mòdul en c++

Creem un programa per comparar cadenes utilitzant la funció strcmp() en C++.

Programa 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; } 

Sortida

 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. 

funció compare().

La funció compare() és una funció de biblioteca predefinida del llenguatge C++. La funció compare() compara dues cadenes donades i retorna els resultats següents basats en els casos coincidents:

  1. Si les dues cadenes són iguals, la funció retorna 0.
  2. Si el valor del caràcter de la primera cadena és més petit que la segona, la funció retorna<0.< li>
  3. Si la segona cadena és més gran que la primera, la funció retorna més gran que 0 o >0.

Sintaxi

 int compare (const string &amp;str) const; 

Creem un programa senzill per comparar dues cadenes utilitzant la funció compare() en C++.

Programa2.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)>

Sortida

 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. 

Operador relacional

És l'operador utilitzat per comparar dues cadenes o valors numèrics en C++. C++ té diferents tipus d'operadors relacionals com ara '==', '!=', >,

Programa 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; } 

Sortida

 Enter the String 1: JavaTpoint Enter the String 2: javatpoint String is not equal. 

2ndExecució:

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

Compareu dues cadenes utilitzant l'operador relacional No igual a (!=).

Creem un programa per comparar si les cadenes són iguals o no utilitzant l'operador No igual a (!=) en C++.

Programa 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; } 

Sortida

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

2ndCorrer:

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

Compareu dues cadenes utilitzant el bucle for i la instrucció if en C++

Programa 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])>

Compareu dues cadenes utilitzant la funció definida per l'usuari en C++

Creem un programa senzill per comparar la primera cadena amb una altra cadena utilitzant la funció definida per l'usuari en C++.

Programa 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; } 

Sortida

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