W tej sekcji omówione zostaną różne sposoby porównywania podanych ciągów w języku programowania C++. Porównanie ciągu określa, czy pierwszy ciąg jest równy innemu ciągowi, czy nie. Przykład: HELLO i Hello to dwa różne ciągi znaków.
Istnieją różne sposoby porównywania ciągów w języku programowania C++:
- Korzystanie z funkcji strcmp().
- Korzystanie z funkcji porównania().
- Korzystanie z operatora relacyjnego
- Korzystanie z pętli For i instrukcji If
- Korzystanie z funkcji zdefiniowanej przez użytkownika
funkcja strcmp().
strcmp() jest predefiniowaną funkcją biblioteczną platformy ciąg.h plik nagłówkowy. Funkcja strcmp() porównuje dwa ciągi znaków na podstawie leksykograficznej. Oznacza to, że funkcja strcmp() rozpoczyna porównywanie pierwszego łańcucha z drugim ciągiem, znak po znaku, aż wszystkie znaki w obu ciągach będą takie same lub napotkany zostanie znak NULL.
Składnia
lista tablic posortowana
int strcmp ( const char *leftstr, const char *rightstr );
Parametry:
lewystr: Definiuje znaki lewego ciągu.
prawy str: Definiuje znaki prawego ciągu.
Zwroty:
Łańcuch leftstr porównuje każdy znak z drugim ciągiem od lewej strony do końca obu ciągów. Jeśli oba ciągi są równe, funkcja strcmp() zwraca ciągi są równe. W przeciwnym razie ciągi nie są równe.
mapa drzewa
Stwórzmy program do porównywania ciągów za pomocą funkcji strcmp() w 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; }
Wyjście
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.
funkcja porównaj ().
Funkcja Compare() jest predefiniowaną funkcją biblioteczną języka C++. Funkcja Compare() porównuje dwa podane ciągi i zwraca następujące wyniki w oparciu o pasujące przypadki:
- Jeśli oba ciągi są takie same, funkcja zwraca 0.
- Jeśli wartość znaku pierwszego ciągu jest mniejsza niż drugiego ciągu, funkcja zwraca<0.< li>
- Jeśli drugi ciąg jest większy niż pierwszy, funkcja zwraca wartość większą niż 0 lub >0. 0.<>
Składnia
int compare (const string &str) const;
Stwórzmy prosty program do porównywania dwóch ciągów znaków przy użyciu funkcji Compare() w 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)>
Wyjście
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.
Operator relacyjny
Jest to operator używany do porównywania dwóch ciągów znaków lub wartości numerycznych w C++. C++ ma różne typy operatorów relacyjnych, takie jak „==”, „!=”, >, Program3.cpp Wyjście 2IIWykonanie: Stwórzmy program porównujący, czy ciągi znaków są równe, czy nie, za pomocą operatora Not Equal To (!=) w C++. Program4.cpp Wyjście 2IIUruchomić: Program5.cpp Stwórzmy prosty program do porównywania pierwszego ciągu z innym ciągiem przy użyciu funkcji zdefiniowanej przez użytkownika w C++. Program6.cpp Wyjście #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.
Porównaj dwa ciągi znaków, używając operatora relacyjnego Nierówne (!=).
czytaj pliki json
model referencyjny osi w sieciach
#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.
Porównaj dwa ciągi znaków za pomocą pętli for i instrukcji if w 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])>
Porównaj dwa ciągi za pomocą funkcji zdefiniowanej przez użytkownika w 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.