logo

Différentes façons de comparer des chaînes en C++

Cette section abordera les différentes manières de comparer les chaînes données dans le langage de programmation C++. La comparaison de la chaîne détermine si la première chaîne est égale ou non à une autre chaîne. Exemple : HELLO et Hello sont deux chaînes différentes.

Différentes façons de comparer des chaînes en C++

Il existe différentes manières de comparer les chaînes dans le langage de programmation C++, comme suit :

  1. Utilisation de la fonction strcmp()
  2. Utilisation de la fonction compare()
  3. Utiliser l'opérateur relationnel
  4. Utilisation de la boucle For et de l'instruction If
  5. Utilisation d'une fonction définie par l'utilisateur

Fonction strcmp()

Le strcmp() est une fonction de bibliothèque prédéfinie du chaîne.h En tête de fichier. La fonction strcmp() compare deux chaînes sur une base lexicographique. Cela signifie que la fonction strcmp() commence à comparer la première chaîne avec la deuxième chaîne, caractère par caractère jusqu'à ce que tous les caractères des deux chaînes soient identiques ou qu'un caractère NULL soit rencontré.

Syntaxe

différence entre le lion et le tigre
 int strcmp ( const char *leftstr, const char *rightstr ); 

Paramètres:

gauche : Il définit les caractères de la chaîne de gauche.

chaîne droite : Il définit les caractères de la bonne chaîne.

Retour:

La chaîne leftstr compare chaque caractère avec la deuxième chaîne du côté gauche jusqu'à la fin des deux chaînes. Et, si les deux chaînes sont égales, la fonction strcmp() renvoie les chaînes sont égales. Sinon, les cordes ne sont pas égales.

oups en java

Créons un programme pour comparer des chaînes à l'aide de la fonction strcmp() en C++.

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

Sortir

 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. 

fonction comparer()

La fonction compare() est une fonction de bibliothèque prédéfinie du langage C++. La fonction compare() compare deux chaînes données et renvoie les résultats suivants en fonction des cas correspondants :

  1. Si les deux chaînes sont identiques, la fonction renvoie 0.
  2. Si la valeur de caractère de la première chaîne est inférieure à la deuxième chaîne, la fonction renvoie<0.< li>
  3. Si la deuxième chaîne est supérieure à la première chaîne, la fonction renvoie supérieur à 0 ou >0.

Syntaxe

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

Créons un programme simple pour comparer deux chaînes à l'aide de la fonction compare() en C++.

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

Sortir

 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. 

Opérateur relationnel

C'est l'opérateur utilisé pour comparer deux chaînes ou valeurs numériques en C++. C++ a différents types d'opérateurs relationnels tels que '==', '!=', >,

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

Sortir

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

2sdExécution:

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

Comparez deux chaînes à l'aide de l'opérateur relationnel Not Equal To (!=)

Créons un programme pour comparer si les chaînes sont égales ou non en utilisant l'opérateur Not Equal To (!=) en C++.

aligner une image en CSS

Programme4.cpp

commandes git pour push
 #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; } 

Sortir

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

2sdCourir:

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

Comparez deux chaînes en utilisant la boucle for et l'instruction if en C++

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

Comparez deux chaînes à l'aide de la fonction définie par l'utilisateur en C++

Créons un programme simple pour comparer la première chaîne avec une autre chaîne à l'aide de la fonction définie par l'utilisateur en C++.

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

Sortir

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