logo

Diversi modi per confrontare stringhe in C++

Questa sezione discuterà i diversi modi per confrontare le stringhe fornite nel linguaggio di programmazione C++. Il confronto della stringa determina se la prima stringa è uguale a un'altra stringa oppure no. Esempio: HELLO e Hello sono due stringhe diverse.

Diversi modi per confrontare stringhe in C++

Esistono diversi modi per confrontare le stringhe nel linguaggio di programmazione C++, come segue:

  1. Utilizzando la funzione strcmp()
  2. Utilizzando la funzione confronta()
  3. Utilizzo dell'operatore relazionale
  4. Utilizzo del ciclo For e dell'istruzione If
  5. Utilizzando la funzione definita dall'utente

funzione strcmp()

strcmp() è una funzione di libreria predefinita di stringa.h file di intestazione. La funzione strcmp() confronta due stringhe su base lessicografica. Ciò significa che la funzione strcmp() inizia a confrontare la prima stringa con la seconda stringa, carattere per carattere finché tutti i caratteri in entrambe le stringhe non sono uguali o non viene incontrato un carattere NULL.

Java prova a catturare

Sintassi

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

parametri:

sinistra: Definisce i caratteri della stringa sinistra.

destrastr: Definisce i caratteri della stringa giusta.

Ritorna:

La stringa leftstr confronta ciascun carattere con la seconda stringa dal lato sinistro fino alla fine di entrambe le stringhe. E, se entrambe le stringhe sono uguali, la funzione strcmp() restituisce che le stringhe sono uguali. Altrimenti le stringhe non sono uguali.

Creiamo un programma per confrontare stringhe utilizzando la funzione strcmp() in C++.

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

Produzione

 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. 

funzione confronta()

La funzione compare() è una funzione di libreria predefinita del linguaggio C++. La funzione compare() confronta due stringhe fornite e restituisce i seguenti risultati in base ai casi corrispondenti:

  1. Se entrambe le stringhe sono uguali, la funzione restituisce 0.
  2. Se il valore del carattere della prima stringa è inferiore alla seconda stringa, la funzione restituisce<0.< li>
  3. Se la seconda stringa è maggiore della prima stringa, la funzione restituisce maggiore di 0 o >0.

Sintassi

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

Creiamo un semplice programma per confrontare due stringhe utilizzando la funzione compare() in C++.

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

Produzione

 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. 

Operatore relazionale

È l'operatore utilizzato per confrontare due stringhe o valori numerici in C++. C++ ha diversi tipi di operatori relazionali come '==', '!=', >,

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

Produzione

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

2ndEsecuzione:

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

Confronta due stringhe utilizzando l'operatore relazionale Non uguale a (!=).

Creiamo un programma per confrontare se le stringhe sono uguali o meno utilizzando l'operatore Not Equal To (!=) in C++.

Programma4.cpp

stringa al carattere Java
 #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; } 

Produzione

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

2ndCorrere:

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

Confronta due stringhe utilizzando il ciclo for e l'istruzione if in C++

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

Confronta due stringhe utilizzando la funzione definita dall'utente in C++

Creiamo un semplice programma per confrontare la prima stringa con un'altra stringa utilizzando la funzione definita dall'utente in C++.

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

Produzione

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