Tässä osiossa käsitellään erilaisia tapoja verrata annettuja merkkijonoja C++-ohjelmointikielellä. Merkkijonon vertailu määrittää, onko ensimmäinen merkkijono yhtä suuri kuin toinen merkkijono vai ei. Esimerkki: HELLO ja Hello ovat kaksi eri merkkijonoa.
On olemassa erilaisia tapoja verrata merkkijonoja C++-ohjelmointikielessä seuraavasti:
- Strcmp()-funktion käyttäminen
- Käytä vertaa()-funktiota
- Relaatiooperaattorin käyttäminen
- For-silmukan ja If-lausekkeen käyttäminen
- Käyttää käyttäjän määrittämää toimintoa
strcmp()-funktio
strcmp() on ennalta määritetty kirjastofunktio merkkijono.h otsikkotiedosto. Strcmp()-funktio vertaa kahta merkkijonoa leksikografisesti. Tämä tarkoittaa, että strcmp()-funktio alkaa vertailla ensimmäistä merkkijonoa toiseen merkkijonoon merkki merkiltä, kunnes kaikki merkit molemmissa merkkijonoissa ovat samat tai NULL-merkki löytyy.
Syntaksi
int strcmp ( const char *leftstr, const char *rightstr );
Parametrit:
lajitteluun arraylist java
leftstr: Se määrittää vasemman merkkijonon merkit.
rightstr: Se määrittää oikean merkkijonon merkit.
Palautukset:
Vasen merkkijono vertaa jokaista merkkiä toiseen merkkijonoon vasemmalta puolelta molempien merkkijonojen loppuun. Ja jos molemmat merkkijonot ovat yhtä suuret, strcmp()-funktio palauttaa merkkijonot ovat yhtä suuret. Muuten kielet eivät ole samanarvoisia.
Luodaan ohjelma merkkijonojen vertailuun strcmp()-funktiolla C++:ssa.
Ohjelma1.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; }
Lähtö
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.
vertaa()-funktio
Vertaa()-funktio on C++-kielen ennalta määritetty kirjastofunktio. Vertaa()-funktio vertaa kahta annettua merkkijonoa ja palauttaa seuraavat tulokset vastaavien tapausten perusteella:
- Jos molemmat merkkijonot ovat samat, funktio palauttaa 0.
- Jos ensimmäisen merkkijonon merkkiarvo on pienempi kuin toisen merkkijonon, funktio palauttaa<0.< li>
- Jos toinen merkkijono on suurempi kuin ensimmäinen merkkijono, funktio palauttaa suuremman kuin 0 tai >0. 0.<>
Syntaksi
int compare (const string &str) const;
Luodaan yksinkertainen ohjelma kahden merkkijonon vertaamiseen C++:n vertailla()-funktiolla.
Ohjelma2.cpp
#include using namespace std; int main () { string str1, str2; // declare string variable cout <> str1; cout <> 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 << str2 << ' is greater than ' << str1 << ' string.' << endl; } else // i == 0; { cout << ' Both strings are equal.'; } return 0; } </0)>
Lähtö
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.
Relaatiooperaattori
Se on operaattori, jota käytetään kahden merkkijonon tai numeroarvon vertaamiseen C++:ssa. C++:ssa on erilaisia relaatiooperaattoreita, kuten '==', '!=', >, Ohjelma3.cpp Lähtö 2ndToteutus: Luodaan ohjelma, jolla verrataan, ovatko merkkijonot yhtä suuret vai eivät, käyttäen Not Equal To (!=) -operaattoria C++:ssa. Ohjelma4.cpp Lähtö 2ndJuosta: Program5.cpp Tehdään yksinkertainen ohjelma vertaamaan ensimmäistä merkkijonoa toiseen merkkijonoon käyttämällä käyttäjän määrittämää funktiota C++:ssa. Ohjelma6.cpp Lähtö #include using namespace std; int main () { // declare string variables string str1; string str2; cout << ' Enter the String 1: ' <> str1; cout << ' Enter the String 2: ' <> str2; // use '==' equal to operator to check the equality of the string if ( str1 == str2) { cout << ' String is equal.' << endl; } else { cout << ' String is not equal.' << endl; } return 0; }
Enter the String 1: JavaTpoint Enter the String 2: javatpoint String is not equal.
Enter the String 1: Program Enter the String 2: Program String is equal.
Vertaa kahta merkkijonoa käyttämällä Not Equal To (!=) -relaatiooperaattoria
#include using namespace std; int main () { // declare string variables string str1; string str2; cout << ' Enter the String 1: ' <> str1; cout << ' Enter the String 2: ' <> str2; // use '!=' not equal to operator to check the equality of the string if ( str1 != str2) { cout << ' String is not equal.' << endl; } else { cout << ' String is equal.' << endl; } return 0; }
Enter the String 1: JAVATpoint Enter the String 2: JavaTPOINT String is not equal.
Enter the String 1: HELLO Enter the String 2: HELLO String is equal.
Vertaa kahta merkkijonoa käyttämällä for loop- ja if-lauseita C++:ssa
#include using namespace std; int main () { char s1[50], s2[50]; // declare character array int i, disp; cout << ' Enter the String 1: ' <> s1; cout << ' Enter the String 2: ' <> s2; for (i = 0; s1[i] == s2[i] && s1[i] == ' '; 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'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 << str1 << ' is not equal to ' << str2 << ' string. ' < str2) { cout << str1 << ' is greater than ' << str2 << ' string.' << endl; } else { cout << str2 << ' is greater than ' << str1 << ' string.' << endl; } } else cout << str1 << ' is equal to ' << str2 << ' string.' << endl; } int main () { string str1 ( 'JavaT'); string str2 ( 'Tpoint'); // call function RelationalCompare (str1, str2); string str3 ('JavaTpoint'); string str4 ('JavaTpoint'); 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])>
Vertaa kahta merkkijonoa käyttämällä käyttäjän määrittämää funktiota C++:ssa
#include using namespace std; void RelationalCompare ( string str1, string str2) { // use relational not equal operator if ( str1 != str2) { cout << str1 << ' is not equal to ' << str2 << ' string. ' < str2) { cout << str1 << ' is greater than ' << str2 << ' string.' << endl; } else { cout << str2 << ' is greater than ' << str1 << ' string.' << endl; } } else cout << str1 << ' is equal to ' << str2 << ' string.' << endl; } int main () { string str1 ( 'JavaT'); string str2 ( 'Tpoint'); // call function RelationalCompare (str1, str2); string str3 ('JavaTpoint'); string str4 ('JavaTpoint'); RelationalCompare (str3, str4); return 0; }
JavaT is not equal to Tpoint string. Tpoint is greater than JavaT string. JavaTpoint is equal to JavaTpoint string.