logo

Diferentes formas de comparar cadenas en C++

Esta sección discutirá las diferentes formas de comparar las cadenas dadas en el lenguaje de programación C++. La comparación de la cadena determina si la primera cadena es igual a otra cadena o no. Ejemplo: HOLA y Hola son dos cadenas diferentes.

Diferentes formas de comparar cadenas en C++

Hay diferentes formas de comparar las cadenas en el lenguaje de programación C++, de la siguiente manera:

  1. Usando la función strcmp()
  2. Usando la función comparar()
  3. Usando operador relacional
  4. Usando el bucle For y la declaración If
  5. Usando la función definida por el usuario

función strcmp()

strcmp() es una función de biblioteca predefinida del cadena.h archivo de cabecera. La función strcmp() compara dos cadenas sobre una base lexicográfica. Esto significa que la función strcmp() comienza a comparar la primera cadena con la segunda cadena, carácter por carácter hasta que todos los caracteres en ambas cadenas sean iguales o se encuentre un carácter NULL.

Sintaxis

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

Parámetros:

cadena izquierda: Define los caracteres de la cadena izquierda.

derechostr: Define los caracteres de la cadena correcta.

Devoluciones:

La cadena lefttr compara cada carácter con la segunda cadena desde el lado izquierdo hasta el final de ambas cadenas. Y, si ambas cadenas son iguales, la función strcmp() devuelve cadenas iguales. De lo contrario, las cadenas no son iguales.

Creemos un programa para comparar cadenas usando la función strcmp() en C++.

Programa1.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; } 

Producción

 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ón comparar()

La función compare() es una función de biblioteca predefinida del lenguaje C++. La función compare() compara dos cadenas dadas y devuelve los siguientes resultados según los casos coincidentes:

  1. Si ambas cadenas son iguales, la función devuelve 0.
  2. Si el valor del carácter de la primera cadena es menor que el de la segunda cadena, la función devuelve<0.< li>
  3. Si la segunda cadena es mayor que la primera, la función devuelve mayor que 0 o >0.

Sintaxis

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

Creemos un programa simple para comparar dos cadenas usando la función comparar() 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)>

Producción

 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

Es el operador utilizado para comparar dos cadenas o valores numéricos en C++. C++ tiene diferentes tipos de operadores relacionales como '==', '!=', >,

Programa3.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; } 

Producción

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

2Dakota del NorteEjecución:

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

Compare dos cadenas usando el operador relacional No igual a (!=)

Creemos un programa para comparar si las cadenas son iguales o no usando el operador No igual a (!=) en C++.

Programa4.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; } 

Producción

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

2Dakota del NorteCorrer:

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

Compare dos cadenas usando el bucle for y la declaración if en C++

Programa5.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])>

Compare dos cadenas usando la función definida por el usuario en C++

Creemos un programa simple para comparar la primera cadena con otra cadena usando la función definida por el usuario en C++.

Programa6.cpp

índice_subcadena en sql
 #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; } 

Producción

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