Tato část se bude zabývat různými způsoby porovnání daných řetězců v programovacím jazyce C++. Porovnání řetězce určuje, zda se první řetězec rovná jinému řetězci nebo ne. Příklad: HELLO a Hello jsou dva různé řetězce.
Existují různé způsoby, jak porovnat řetězce v programovacím jazyce C++, a to následovně:
- Použití funkce strcmp().
- Použití funkce Compare().
- Použití relačního operátoru
- Použití cyklu For a příkazu If
- Použití uživatelem definované funkce
funkce strcmp().
Strcmp() je předdefinovaná knihovní funkce řetězec.h hlavičkový soubor. Funkce strcmp() porovnává dva řetězce na lexikografickém základě. To znamená, že funkce strcmp() začne znak po znaku porovnávat první řetězec s druhým řetězcem, dokud nejsou všechny znaky v obou řetězcích stejné nebo dokud nenarazí na znak NULL.
Syntax
int strcmp ( const char *leftstr, const char *rightstr );
Parametry:
leftstr: Definuje znaky levého řetězce.
rightstr: Definuje znaky správného řetězce.
arp příkaz
Vrácení:
Řetězec leftstr porovnává každý znak s druhým řetězcem z levé strany až do konce obou řetězců. A pokud jsou oba řetězce stejné, funkce strcmp() vrátí řetězce jsou stejné. Jinak struny nejsou stejné.
Vytvořme program pro porovnání řetězců pomocí funkce 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; }
Výstup
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.
funkce porovnat().
Funkce Compare() je předdefinovaná knihovní funkce jazyka C++. Funkce Compare() porovná dva dané řetězce a vrátí následující výsledky na základě shodných případů:
- Pokud jsou oba řetězce stejné, funkce vrátí 0.
- Pokud je hodnota znaku prvního řetězce menší než druhého řetězce, funkce se vrátí<0.< li>
- Pokud je druhý řetězec větší než první, funkce vrátí hodnotu větší než 0 nebo >0. 0.<>
Syntax
nevýhody internetu
int compare (const string &str) const;
Vytvořme jednoduchý program pro porovnání dvou řetězců pomocí funkce Compare() v C++.
Program2.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)>
Výstup
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.
Relační operátor
Je to operátor používaný k porovnání dvou řetězců nebo číselných hodnot v C++. C++ má různé typy relačních operátorů, jako jsou '==', '!=', >, Program3.cpp Výstup 2ndProvedení: Vytvořme program pro porovnání, zda jsou řetězce stejné nebo ne, pomocí operátoru Not Equal To (!=) v C++. Program4.cpp Výstup 2ndBěh: Program5.cpp Vytvořme jednoduchý program pro porovnání prvního řetězce s jiným řetězcem pomocí uživatelsky definované funkce v C++. Program6.cpp Výstup #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.
Porovnejte dva řetězce pomocí relačního operátoru Nerovná se (!=).
seznam písem gimp
#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.
Porovnejte dva řetězce pomocí příkazu for a if v 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])>
Porovnejte dva řetězce pomocí uživatelsky definované funkce v C++
#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.