logo

Forskellige måder at sammenligne strenge på i C++

Dette afsnit vil diskutere de forskellige måder at sammenligne de givne strenge på i programmeringssproget C++. Sammenligningen af ​​strengen afgør, om den første streng er lig med en anden streng eller ej. Eksempel: HELLO og Hello er to forskellige strenge.

Forskellige måder at sammenligne strenge på i C++

Der er forskellige måder at sammenligne strengene i C++ programmeringssproget på, som følger:

  1. Brug strcmp() funktion
  2. Brug af compare() funktion
  3. Brug af Relational Operator
  4. Brug af For loop og If-sætning
  5. Bruger brugerdefineret funktion

strcmp() funktion

Strcmp() er en foruddefineret biblioteksfunktion af streng.h header-fil. Strcmp()-funktionen sammenligner to strenge på et leksikografisk grundlag. Det betyder, at strcmp()-funktionen begynder at sammenligne den første streng med den anden streng, tegn for tegn, indtil alle tegn i begge strenge er ens, eller der stødes på et NULL-tegn.

Syntaks

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

Parametre:

venstrestr: Den definerer tegnene i den venstre streng.

højre str: Det definerer tegnene i den højre streng.

streng til int

Vender tilbage:

Den venstre str-streng sammenligner hvert tegn med den anden streng fra venstre side til slutningen af ​​begge strenge. Og hvis begge strenge er ens, returnerer funktionen strcmp() at strenge er ens. Ellers er strengene ikke ens.

Lad os oprette et program til at sammenligne strenge ved hjælp af funktionen strcmp() i 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; } 

Produktion

 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. 

compare() funktion

Compare()-funktionen er en foruddefineret biblioteksfunktion i C++-sproget. Funktionen compare() sammenligner to givne strenge og returnerer følgende resultater baseret på matchende tilfælde:

  1. Hvis begge strenge er ens, returnerer funktionen 0.
  2. Hvis tegnværdien af ​​den første streng er mindre end den anden streng, returnerer funktionen<0.< li>
  3. Hvis den anden streng er større end den første streng, returnerer funktionen større end 0 eller >0.

Syntaks

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

Lad os lave et simpelt program til at sammenligne to strenge ved hjælp af compare()-funktionen i C++.

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

Produktion

 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. 

Relationel operatør

Det er den operator, der bruges til at sammenligne to strenge eller numeriske værdier i C++. C++ har forskellige typer relationsoperatorer såsom '==', '!=', >,

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

Produktion

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

2ndUdførelse:

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

Sammenlign to strenge ved at bruge den Relationelle Operator Ikke lig med (!=).

Lad os lave et program til at sammenligne, om strengene er ens eller ej, ved at bruge operatoren Not Equal To (!=) i 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; } 

Produktion

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

2ndLøb:

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

Sammenlign to strenge med for loop og if-sætning i 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])>

Sammenlign to strenge ved hjælp af den brugerdefinerede funktion i C++

Lad os lave et simpelt program til at sammenligne den første streng med en anden streng ved hjælp af den brugerdefinerede funktion i C++.

spil pigeon android

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

Produktion

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