logo

Različni načini primerjave nizov v C++

V tem razdelku bomo razpravljali o različnih načinih primerjave danih nizov v programskem jeziku C++. Primerjava niza določa, ali je prvi niz enak drugemu nizu ali ne. Primer: HELLO in Hello sta dva različna niza.

Različni načini primerjave nizov v C++

Obstajajo različni načini za primerjavo nizov v programskem jeziku C++, kot sledi:

  1. Uporaba funkcije strcmp().
  2. Uporaba funkcije compare().
  3. Uporaba relacijskega operaterja
  4. Uporaba zanke For in stavka If
  5. Uporaba uporabniško definirane funkcije

funkcijo strcmp().

Strcmp() je vnaprej določena funkcija knjižnice niz.h naslovna datoteka. Funkcija strcmp() primerja dva niza na leksikografski podlagi. To pomeni, da funkcija strcmp() začne primerjati prvi niz z drugim nizom, znak za znakom, dokler niso vsi znaki v obeh nizih enaki ali pa se pojavi znak NULL.

Sintaksa

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

Parametri:

leftstr: Določa znake levega niza.

rightstr: Določa znake desnega niza.

Vrne:

java math.random

Leftstr niz primerja vsak znak z drugim nizom od leve strani do konca obeh nizov. In če sta oba niza enaka, vrne funkcija strcmp() enaka niza. V nasprotnem primeru nizi niso enaki.

Ustvarimo program za primerjavo nizov s funkcijo strcmp() v 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; } 

Izhod

 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. 

primerjaj().

Funkcija compare() je vnaprej določena knjižnična funkcija jezika C++. Funkcija compare() primerja dva podana niza in vrne naslednje rezultate na podlagi ujemajočih se primerov:

  1. Če sta oba niza enaka, funkcija vrne 0.
  2. Če je vrednost znaka prvega niza manjša od vrednosti drugega niza, se funkcija vrne<0.< li>
  3. Če je drugi niz večji od prvega niza, funkcija vrne več kot 0 ali >0.

Sintaksa

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

Ustvarimo preprost program za primerjavo dveh nizov s funkcijo compare() v 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)>

Izhod

 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. 

Relacijski operater

Je operator, ki se uporablja za primerjavo dveh nizov ali številskih vrednosti v C++. C++ ima različne vrste relacijskih operatorjev, kot so '==', '!=', >,

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

Izhod

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

2ndIzvedba:

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

Primerjajte dva niza z relacijskim operatorjem Not Equal To (!=).

Ustvarimo program za primerjavo, ali so nizi enaki ali ne, z uporabo operatorja Not Equal To (!=) v 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; } 

Izhod

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

2ndTeči:

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

Primerjajte dva niza z uporabo zanke for in stavka if v 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])>

Primerjajte dva niza z uporabniško določeno funkcijo v C++

Ustvarimo preprost program za primerjavo prvega niza z drugim nizom z uporabo uporabniško definirane funkcije v 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; } 

Izhod

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