logo

Verschillende manieren om tekenreeksen in C++ te vergelijken

In deze sectie worden de verschillende manieren besproken om de gegeven strings in de programmeertaal C++ te vergelijken. De vergelijking van de string bepaalt of de eerste string gelijk is aan een andere string of niet. Voorbeeld: HELLO en Hallo zijn twee verschillende tekenreeksen.

Verschillende manieren om tekenreeksen in C++ te vergelijken

Er zijn verschillende manieren om de tekenreeksen in de programmeertaal C++ te vergelijken, als volgt:

  1. De strcmp()-functie gebruiken
  2. De functie Compare() gebruiken
  3. Relationele operator gebruiken
  4. Met behulp van For-lus en If-instructie
  5. Door de gebruiker gedefinieerde functie gebruiken

strcmp()-functie

De strcmp() is een vooraf gedefinieerde bibliotheekfunctie van het string.h header-bestand. De functie strcmp() vergelijkt twee strings op lexicografische basis. Dit betekent dat de functie strcmp() begint met het vergelijken van de eerste string met de tweede string, karakter voor karakter totdat alle karakters in beide strings hetzelfde zijn of een NULL-teken wordt aangetroffen.

Syntaxis

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

Parameters:

linkerstr: Het definieert de karakters van de linkerreeks.

rechterstr: Het definieert de karakters van de rechterreeks.

Geeft terug:

De leftstr-string vergelijkt elk teken met de tweede string vanaf de linkerkant tot het einde van beide strings. En als beide strings gelijk zijn, retourneert de functie strcmp() dat strings gelijk zijn. Anders zijn de snaren niet gelijk.

Laten we een programma maken om tekenreeksen te vergelijken met behulp van de strcmp() functie in C++.

Programma1.cpp

download autocad 2019 engels mediafire
 #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; } 

Uitvoer

 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. 

vergelijk() functie

De functie Compare() is een vooraf gedefinieerde bibliotheekfunctie van de C++-taal. De functie Compare() vergelijkt twee gegeven tekenreeksen en retourneert de volgende resultaten op basis van de overeenkomende gevallen:

  1. Als beide strings hetzelfde zijn, retourneert de functie 0.
  2. Als de tekenwaarde van de eerste string kleiner is dan de tweede string, retourneert de functie<0.< li>
  3. Als de tweede tekenreeks groter is dan de eerste tekenreeks, retourneert de functie groter dan 0 of >0.

Syntaxis

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

Laten we een eenvoudig programma maken om twee tekenreeksen te vergelijken met behulp van de functie Compare() in C++.

Programma2.cpp

Java-softwarepatronen
 #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)>

Uitvoer

 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. 

Relationele operator

Het is de operator die wordt gebruikt om twee tekenreeksen of numerieke waarden in C++ te vergelijken. C++ heeft verschillende soorten relationele operatoren zoals '==', '!=', >,

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

Uitvoer

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

2nlExecutie:

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

Vergelijk twee tekenreeksen met behulp van de relationele operator Niet gelijk aan (!=).

Laten we een programma maken om te vergelijken of de tekenreeksen gelijk zijn of niet, met behulp van de operator Not Equal To (!=) in C++.

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

Uitvoer

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

2nlLoop:

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

Vergelijk twee tekenreeksen met behulp van de for-lus en de if-instructie 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])>

Vergelijk twee tekenreeksen met behulp van de door de gebruiker gedefinieerde functie in C++

Laten we een eenvoudig programma maken om de eerste string te vergelijken met een andere string met behulp van de door de gebruiker gedefinieerde functie 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; } 

Uitvoer

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