Bu bölümde verilen dizeleri C++ programlama dilinde karşılaştırmanın farklı yolları tartışılacaktır. Stringin karşılaştırılması, ilk stringin başka bir stringe eşit olup olmadığını belirler. Örnek: HELLO ve Hello iki farklı dizedir.
C++ programlama dilinde dizeleri karşılaştırmanın aşağıdaki gibi farklı yolları vardır:
- strcmp() işlevini kullanma
- Compare() işlevini kullanma
- İlişkisel Operatörü Kullanma
- For döngüsünü ve If ifadesini kullanma
- Kullanıcı tanımlı işlevi kullanma
strcmp() işlevi
strcmp() önceden tanımlanmış bir kütüphane fonksiyonudur. dize.h başlık dosyası. strcmp() işlevi iki dizeyi sözlüksel temelde karşılaştırır. Bu, strcmp() fonksiyonunun, her iki dizedeki tüm karakterler aynı oluncaya veya bir NULL karakterle karşılaşılıncaya kadar, ilk dizeyi ikinci dizeyle karakter karakter karşılaştırmaya başladığı anlamına gelir.
Sözdizimi
int strcmp ( const char *leftstr, const char *rightstr );
Parametreler:
sol dize: Sol dizenin karakterlerini tanımlar.
sağdaki: Sağ dizenin karakterlerini tanımlar.
İadeler:
Leftstr dizesi, her karakteri sol taraftan her iki dizenin sonuna kadar ikinci dizeyle karşılaştırır. Ve eğer her iki dize de eşitse, strcmp() işlevi dizelerin eşit olduğunu döndürür. Aksi takdirde dizeler eşit değildir.
C++'ta strcmp() fonksiyonunu kullanarak dizeleri karşılaştıracak bir program oluşturalım.
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; }
Çıktı
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.
karşılaştırma() işlevi
Compare() işlevi, C++ dilinin önceden tanımlanmış bir kitaplık işlevidir. Compare() işlevi verilen iki dizeyi karşılaştırır ve eşleşen durumlara göre aşağıdaki sonuçları döndürür:
- Her iki dize de aynıysa işlev 0 değerini döndürür.
- İlk dizenin karakter değeri ikinci dizeden küçükse işlev şunu döndürür:<0.< li>
- İkinci dize birinci dizeden büyükse işlev 0'dan büyük veya >0 değerini döndürür. 0.<>
Sözdizimi
Java dizisi
int compare (const string &str) const;
C++'daki Compare() işlevini kullanarak iki dizeyi karşılaştırmak için basit bir program oluşturalım.
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)>
Çıktı
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.
İlişkisel Operatör
C++'da iki dizeyi veya sayısal değeri karşılaştırmak için kullanılan operatördür. C++ '==', '!=', >, gibi farklı türde ilişkisel operatörlere sahiptir. Program3.cpp Çıktı 2veUygulamak: C++'ta Eşit Değil (!=) operatörünü kullanarak dizelerin eşit olup olmadığını karşılaştıracak bir program oluşturalım. Program4.cpp Çıktı 2veKoşmak: Program5.cpp C++'daki kullanıcı tanımlı işlevi kullanarak ilk dizeyi başka bir dizeyle karşılaştıran basit bir program oluşturalım. Program6.cpp Çıktı #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; }
Desktop.ini nedir?
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.
Eşit Değil (!=) İlişkisel Operatörünü kullanarak iki dizeyi karşılaştırın
#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.
C++'da for döngüsü ve if ifadesini kullanarak iki dizeyi karşılaştırın
#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++'daki Kullanıcı tanımlı işlevi kullanarak iki dizeyi karşılaştırın
#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.