У цьому розділі обговорюватимуться різні способи порівняння заданих рядків мовою програмування C++. Порівняння рядка визначає, дорівнює перший рядок іншому рядку чи ні. Приклад: HELLO і Hello — це два різні рядки.
блокувати рекламу YouTube на android
Існують різні способи порівняння рядків у мові програмування C++:
- Використання функції strcmp().
- Використання функції compare().
- Використання оператора відношення
- Використання циклу For і оператора If
- Використання функції, визначеної користувачем
функція strcmp().
strcmp() — це попередньо визначена бібліотечна функція рядок.h файл заголовка. Функція strcmp() порівнює два рядки на лексикографічній основі. Це означає, що функція strcmp() починає порівнювати перший рядок із другим рядком, символ за символом, поки всі символи в обох рядках не стануть однаковими або не зустрінеться символ NULL.
Синтаксис
int strcmp ( const char *leftstr, const char *rightstr );
Параметри:
leftstr: Він визначає символи лівого рядка.
rightstr: Він визначає символи правого рядка.
Повернення:
Рядок leftstr порівнює кожен символ із другим рядком зліва до кінця обох рядків. І якщо обидва рядки рівні, функція strcmp() повертає рівні рядки. Інакше рядки не рівні.
Давайте створимо програму для порівняння рядків за допомогою функції strcmp() у 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; }
Вихід
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.
функція compare().
Функція compare() є попередньо визначеною бібліотечною функцією мови C++. Функція compare() порівнює два дані рядки та повертає такі результати на основі відповідних випадків:
- Якщо обидва рядки однакові, функція повертає 0.
- Якщо значення символу першого рядка менше, ніж значення другого рядка, функція повертає<0.< li>
- Якщо другий рядок більший за перший, функція повертає більше 0 або >0. 0.<>
Синтаксис
int compare (const string &str) const;
Давайте створимо просту програму для порівняння двох рядків за допомогою функції compare() у 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)>
Вихід
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.
Оператор відношення
Це оператор, який використовується для порівняння двох рядків або числових значень у C++. C++ має різні типи операторів відношення, наприклад '==', '!=', >, Program3.cpp Вихід 2ndВиконання: Давайте створимо програму для порівняння рівності рядків за допомогою оператора Not Equal To (!=) у C++. Program4.cpp Вихід 2ndзапустити: Program5.cpp Давайте створимо просту програму для порівняння першого рядка з іншим рядком за допомогою визначеної користувачем функції в C++. Program6.cpp Вихід #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.
xor у c++
Enter the String 1: Program Enter the String 2: Program String is equal.
Порівняйте два рядки за допомогою оператора відношення 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; }
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.
Порівняйте два рядки за допомогою циклу for і оператора if у 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])>
Порівняйте два рядки за допомогою функції, визначеної користувачем, у 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.