logo

Divu virkņu salīdzināšana programmā C++

Ņemot vērā divas virknes, kā pārbaudīt, vai abas virknes ir vienādas.
Piemēri:

Input : ABCD, XYZ Output : ABCD is not equal to XYZ XYZ is greater than ABCD Input : Geeks, forGeeks Output : Geeks is not equal to forGeeks forGeeks is greater than Geeks>

Šo problēmu var atrisināt, izmantojot jebkuru no šīm divām metodēm



    C++ Relāciju operatori

CPP






mašīnraksta komplekts

java evakuācijas rakstzīmes
// CPP code to implement relational> // operators on string objects> #include> using> namespace> std;> void> relationalOperation(string s1, string s2)> {> >if> (s1 != s2)> >{> >cout << s1 <<>' is not equal to '> << s2 << endl;> >if> (s1>s2)> >cout << s1 <<>' is greater than '> << s2 << endl;> >else> >cout << s2 <<>' is greater than '> << s1 << endl;> >}> >else> >cout << s1 <<>' is equal to '> << s2 << endl;> }> // Driver code> int> main()> {> >string s1(>'Geeks'>);> >string s2(>'forGeeks'>);> >relationalOperation(s1, s2);> >string s3(>'Geeks'>);> >string s4(>'Geeks'>);> >relationalOperation(s3, s4);> >return> 0;> }>



>

>

Izvade

Geeks is not equal to forGeeks forGeeks is greater than Geeks Geeks is equal to Geeks>

Laika sarežģītība: O(min(n,m)), kur n un m ir virkņu garums.

Palīgtelpa: O(max(n,m)), kur n un m ir virkņu garums.

Tas ir tāpēc, ka, kad virkne tiek nodota funkcijā, tā izveido sevis kopiju kaudzē.

vienkārša python programma
    std:: Salīdzināt ()

CPP




npm instalēšanas komanda

// CPP code perform relational> // operation using compare function> #include> using> namespace> std;> void> compareFunction(string s1, string s2)> {> >// comparing both using inbuilt function> >int> x = s1.compare(s2);> >if> (x != 0) {> >cout << s1> ><<>' is not equal to '> ><< s2 << endl;> >if> (x>0)> >cout << s1> ><<>' is greater than '> ><< s2 << endl;> >else> >cout << s2> ><<>' is greater than '> ><< s1 << endl;> >}> >else> >cout << s1 <<>' is equal to '> << s2 << endl;> }> // Driver Code> int> main()> {> >string s1(>'Geeks'>);> >string s2(>'forGeeks'>);> >compareFunction(s1, s2);> >string s3(>'Geeks'>);> >string s4(>'Geeks'>);> >compareFunction(s3, s4);> >return> 0;> }>

>

>

Izvade

Geeks is not equal to forGeeks forGeeks is greater than Geeks Geeks is equal to Geeks>

Laika sarežģītība: O(min(n,m)), kur n un m ir virkņu garums.

Palīgtelpa: O(max(n,m)), kur n un m ir virkņu garums.

Tas ir tāpēc, ka, kad virkne tiek nodota funkcijā, tā izveido sevis kopiju kaudzē.

kā izgudroja skolu

Atšķirības starp C++ relāciju operatoriem un salīdzināt () :-

  1. salīdzināt() atgriež int, savukārt relāciju operatori atgriež Būla vērtību, t.i., patiesu vai nepatiesu.
  2. Viens relāciju operators ir unikāls noteiktai darbībai, savukārt salīdzināt () var veikt daudzas dažādas darbības vienatnē, pamatojoties uz nodoto argumentu veidu.
  3. Mēs varam salīdzināt jebkuru apakšvirkni jebkurā noteiktā virknes pozīcijā, izmantojot salīdzināt (), kas citādi prasa garu virknes izvilkšanas procedūru pa vārdam salīdzināšanai, izmantojot relāciju operatorus.

Piemērs:-

    Izmantojot salīdzinājumu ()
// Compare 3 characters from 3rd position // (or index 2) of str1 with 3 characters // from 4th position of str2. if (str1.compare(2, 3, str2, 3, 3) == 0) cout<<'Equal'; else cout<<'Not equal';>
    Izmantojot relāciju operatoru
for (i = 2, j = 3; i <= 5 && j <= 6; i++, j++) { if (s1[i] != s2[j]) break; } if (i == 6 && j == 7) cout << 'Equal'; else cout << 'Not equal';>

Iepriekš minētais piemērs skaidri parāda, kā salīdzināt() samazina papildu apstrādi, tāpēc ieteicams to izmantot, veicot apakšvirkņu salīdzināšanu kādā pozīcijā, pretējā gadījumā abi darbojas gandrīz vienādi.