Kun annetaan kaksi merkkijonoa, kuinka tarkistaa, ovatko kaksi merkkijonoa yhtä suuret vai eivät.
Esimerkkejä:
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>
Tämä ongelma voidaan ratkaista jollakin seuraavista kahdesta menetelmästä
- C++ Relaatiooperaattorit
CPP
lisäämällä merkkijonoa javassa
// 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;> }> |
kuinka lukea csv-tiedostoa javassa
>
>Lähtö
char tostring java
Geeks is not equal to forGeeks forGeeks is greater than Geeks Geeks is equal to Geeks>
Aika monimutkaisuus: O(min(n,m)) missä n ja m ovat merkkijonojen pituus.
Aputila: O(max(n,m)) missä n ja m ovat merkkijonojen pituus.
Tämä johtuu siitä, että kun merkkijono välitetään funktiossa, se luo itsestään kopion pinoon.
- std:: Vertaa()
CPP
// 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;> }> |
konekirjoitus foreach
>
>Lähtö
Geeks is not equal to forGeeks forGeeks is greater than Geeks Geeks is equal to Geeks>
Aika monimutkaisuus: O(min(n,m)) missä n ja m ovat merkkijonojen pituus.
Aputila: O(max(n,m)) missä n ja m ovat merkkijonojen pituus.
Tämä johtuu siitä, että kun merkkijono välitetään funktiossa, se luo itsestään kopion pinoon.
math.pow java
Erot C++-relaatiooperaattoreiden välillä ja vertaa() :-
- vertaa() palauttaa int-arvon, kun taas relaatiooperaattorit palauttavat loogisen arvon, eli joko tosi tai epätosi.
- Yksi relaatiooperaattori on ainutlaatuinen tietylle operaatiolle, kun taas vertaa() voi suorittaa monia erilaisia operaatioita yksinään, perustuen välitettyjen argumenttien tyyppiin.
- Voimme verrata mitä tahansa alimerkkijonoa missä tahansa tietyssä merkkijonossa käyttämällä vertailu(), joka muuten vaatii pitkän prosessin, jossa merkkijono poimitaan sana kerrallaan vertailua varten relaatiooperaattoreilla.
Esimerkki: -
- Vertailu()
// 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';>
- Relaatiooperaattorin käyttö
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';> Yllä oleva esimerkki osoittaa selvästi, miten vertailla() vähentää paljon ylimääräistä käsittelyä, joten on suositeltavaa käyttää sitä suoritettaessa osamerkkijonojen vertailua jossain kohdassa, muuten molemmat toimivat melkein samalla tavalla.