logo

Diferite moduri de a compara șirurile în C++

Această secțiune va discuta diferitele moduri de a compara șirurile date în limbajul de programare C++. Comparația șirului determină dacă primul șir este egal cu un alt șir sau nu. Exemplu: HELLO și Hello sunt două șiruri diferite.

Diferite moduri de a compara șirurile în C++

Există diferite moduri de a compara șirurile în limbajul de programare C++, după cum urmează:

  1. Folosind funcția strcmp().
  2. Folosind funcția compare().
  3. Utilizarea operatorului relațional
  4. Folosind bucla For și instrucțiunea If
  5. Utilizarea funcției definite de utilizator

funcția strcmp().

strcmp() este o funcție de bibliotecă predefinită a sfoară.h fișier antet. Funcția strcmp() compară două șiruri de caractere pe o bază lexicografică. Aceasta înseamnă că funcția strcmp() începe să compare primul șir cu al doilea șir, caracter cu caracter până când toate caracterele din ambele șiruri sunt aceleași sau se întâlnește un caracter NULL.

Sintaxă

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

Parametri:

leftstr: Definește caracterele șirului din stânga.

dreapta str: Definește caracterele șirului drept.

cifre romane 1-100

Se intoarce:

Șirul leftstr compară fiecare caracter cu al doilea șir din partea stângă până la sfârșitul ambelor șiruri. Și, dacă ambele șiruri sunt egale, funcția strcmp() returnează șirurile sunt egale. În rest, șirurile nu sunt egale.

Să creăm un program pentru a compara șiruri folosind funcția strcmp() în C++.

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

Ieșire

valoarea șirului
 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. 

funcția compare().

Funcția compare() este o funcție de bibliotecă predefinită a limbajului C++. Funcția compare() compară două șiruri date și returnează următoarele rezultate pe baza cazurilor care se potrivesc:

  1. Dacă ambele șiruri sunt aceleași, funcția returnează 0.
  2. Dacă valoarea caracterului primului șir este mai mică decât al doilea șir, funcția revine<0.< li>
  3. Dacă al doilea șir este mai mare decât primul șir, funcția returnează mai mare decât 0 sau >0.

Sintaxă

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

Să creăm un program simplu pentru a compara două șiruri de caractere folosind funcția compare() în C++.

citiți din csv java

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

Ieșire

 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. 

Operator Relațional

Este operatorul folosit pentru a compara două șiruri de caractere sau valori numerice în C++. C++ are diferite tipuri de operatori relaționali, cum ar fi „==”, „!=”, >,

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

Ieșire

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

2ndExecuţie:

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

Comparați două șiruri folosind Operatorul Relațional Nu este egal cu (!=).

Să creăm un program pentru a compara dacă șirurile sunt egale sau nu folosind operatorul Not Equal To (!=) în C++.

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

Ieșire

subcomisar de poliție
 Enter the String 1: JAVATpoint Enter the String 2: JavaTPOINT String is not equal. 

2ndAlerga:

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

Comparați două șiruri de caractere folosind bucla for și instrucțiunea if în C++

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

Comparați două șiruri de caractere folosind funcția definită de utilizator în C++

Să creăm un program simplu pentru a compara primul șir cu un alt șir folosind funcția definită de utilizator în C++.

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

Ieșire

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