Šajā sadaļā tiks apspriesti dažādi veidi, kā salīdzināt dotās virknes C++ programmēšanas valodā. Virknes salīdzinājums nosaka, vai pirmā virkne ir vienāda ar citu virkni vai nē. Piemērs: HELLO un Hello ir divas dažādas virknes.
Ir dažādi veidi, kā salīdzināt virknes C++ programmēšanas valodā:
- Izmantojot funkciju strcmp ().
- Izmantojot funkciju salīdzināt ().
- Izmantojot relāciju operatoru
- For cilpas un If priekšraksta izmantošana
- Izmantojot lietotāja definētu funkciju
strcmp() funkcija
Strcmp () ir iepriekš definēta bibliotēkas funkcija string.h galvenes fails. Funkcija strcmp() salīdzina divas virknes leksikogrāfiski. Tas nozīmē, ka funkcija strcmp () sāk salīdzināt pirmo virkni ar otro virkni, pa rakstzīmei, līdz visas rakstzīmes abās virknēs ir vienādas vai tiek atrasta NULL rakstzīme.
Sintakse
int strcmp ( const char *leftstr, const char *rightstr );
Parametri:
leftstr: Tas nosaka kreisās virknes rakstzīmes.
rightstr: Tas nosaka pareizās virknes rakstzīmes.
Atgriež:
Kreisās virknes virkne salīdzina katru rakstzīmi ar otro virkni no kreisās puses līdz abu virkņu beigām. Un, ja abas virknes ir vienādas, funkcija strcmp () atgriež virknes ir vienādas. Citādi stīgas nav vienādas.
Izveidosim programmu virkņu salīdzināšanai, izmantojot C++ funkciju strcmp().
Programma1.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; }
Izvade
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.
salīdzināt () funkciju
Funkcija salīdzināt () ir C++ valodas iepriekš definēta bibliotēkas funkcija. Funkcija salīdzināt () salīdzina divas norādītās virknes un atgriež šādus rezultātus, pamatojoties uz atbilstības gadījumiem:
- Ja abas virknes ir vienādas, funkcija atgriež 0.
- Ja pirmās virknes rakstzīmju vērtība ir mazāka par otro virkni, funkcija atgriežas<0.< li>
- Ja otrā virkne ir lielāka par pirmo, funkcija atgriež lielāku par 0 vai >0. 0.<>
Sintakse
int compare (const string &str) const;
Izveidosim vienkāršu programmu divu virkņu salīdzināšanai, izmantojot C++ funkciju salīdzināt().
Programma2.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)>
Izvade
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.
Relāciju operators
Tas ir operators, ko izmanto, lai salīdzinātu divas virknes vai skaitliskās vērtības C++ valodā. C++ ir dažāda veida relāciju operatori, piemēram, '==', '!=', >, Programma3.cpp Izvade 2ndIzpilde: Izveidosim programmu, lai salīdzinātu, vai virknes ir vienādas vai ne, izmantojot operatoru Not Equal To (!=) C++ valodā. Programma4.cpp Izvade 2ndPalaist: Programma5.cpp Izveidosim vienkāršu programmu, lai salīdzinātu pirmo virkni ar citu virkni, izmantojot lietotāja definētu funkciju C++. Programma6.cpp Izvade #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.
Salīdziniet divas virknes, izmantojot relāciju operatoru Not Equal To (!=).
#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; }
masīvs Java valodā
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.
Salīdziniet divas virknes, izmantojot for loop un if paziņojumu C++
#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])>
Salīdziniet divas virknes, izmantojot C++ lietotāja definēto funkciju
#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.