giriiş
Bu yazıda C++'da dizeleri nasıl karşılaştıracağınızı öğreneceksiniz.
1. C++'da strcmp() fonksiyonunun kullanımı
C++ String, String verilerini işlemek için yerleşik işlevlere sahiptir. strcmp() işlevi, iki dizeyi sözlüksel olarak karşılaştırmak için kullanılan bir C kütüphanesi işlevidir.
- Giriş dizesi C tarzı dizelerden oluşan bir karakter dizisi olmalıdır.
- strcmp() ayrıca dizeleri büyük/küçük harfe duyarlı biçimde karşılaştırır.
int strcmp(const char *str1, const char *str2);Bu fonksiyon eşleşen öğelere bağlı olarak aşağıdaki değerleri döndürür:
- Her iki dize de aynıysa 0 döndürür.
- Eğer ilk dizenin karakter değeri ikinci dize girdisine göre küçükse < 0 (sıfırdan küçük) değerini döndürür.
- Karşılaştırmadaki ikinci dize daha büyük olduğunda sonuçlar > 0'dır (sıfırdan büyük).
Aşağıdaki kodu çalıştırın:
#include <iostream>
#include <string.h>
int main()
{
const char *str_inp1 = "String Match";
const char *str_inp2 = "String Unmatch";
std::cout << "String 1: " << str_inp1 << std::endl;
std::cout << "String 2: " << str_inp2 << std::endl;
if (strcmp(str_inp1, str_inp2) == 0)
std::cout << "\nBoth the input strings are equal." << std::endl;
else
std::cout << "\nThe input strings are not equal." << std::endl;
}Bu aşağıdaki çıktıyı üretir:
OutputString 1: String Match
String 2: String Unmatch
The input strings are not equal.strcmp(str_inp1, str_inp2) -9 sonucunu verir. Str_inp1 ve str_inp2 değerleri farklıdır.
Aşağıdaki kodu çalıştırın:
#include <iostream>
#include <string.h>
int main()
{
const char *str_inp1 = "String Match";
const char *str_inp2 = "String Match";
std::cout << "String 1: " << str_inp1 << std::endl;
std::cout << "String 2: " << str_inp2 << std::endl;
if (strcmp(str_inp1, str_inp2) == 0)
std::cout << "\nBoth the input strings are equal." << std::endl;
else
std::cout << "\nThe input strings are not equal." << std::endl;
}Bu aşağıdaki çıktıyı üretir:
Output
String 1: String Match
String 2: String Match
Both the input strings are equal.strcmp(str_inp1, str_inp2) 0 değerini döndürür. Str_inp1 ve str_inp2 değerleri aynıdır.
2. C++'da compare() fonksiyonunun kullanımı
C++'da iki dizeyi karşılaştırmak için yerleşik bir compare() fonksiyonu vardır.
compare() fonksiyonu iki dizeyi karşılaştırır:
int compare (const string& string-name) const;Bu fonksiyon eşleşen öğelere bağlı olarak aşağıdaki değerleri döndürür:
- Her iki dize de aynıysa 0 döndürür.
- Eğer ilk dizenin karakter değeri ikinci dize girdisine göre küçükse < 0 (sıfırdan küçük) değerini döndürür.
- Karşılaştırmadaki ikinci dize daha büyük olduğunda sonuçlar > 0'dır (sıfırdan büyük).
Aşağıdaki kodu çalıştırın:
#include <iostream>
int main()
{
std::string str_inp1("String Match");
std::string str_inp2("String Match");
std::cout << "String 1: " << str_inp1 << std::endl;
std::cout << "String 2: " << str_inp2 << std::endl;
int res = str_inp1.compare(str_inp2);
if (res == 0)
std::cout << "\nBoth the input strings are equal." << std::endl;
else if (res < 0)
std::cout << "\nString 1 is smaller as compared to String 2." << std::endl;
else
std::cout << "\nString 1 is greater as compared to String 2." << std::endl;
}Bu örnekte, str_inp1 ve str_inp2 compare() ile karşılaştırılır:
Output
String 1: String Match
String 2: String Match
Both the input strings are equal.Her iki dize de sözcüksel olarak aynı olduğundan fonksiyon 0 değerini döndürür.
Aşağıdaki kodu çalıştırın:
#include <iostream>
int main()
{
std::string str_inp0("String Match");
std::string str_inp1("String Match");
std::string str_inp2("String Unmatch");
std::cout << "String 1: " << str_inp1 << std::endl;
if (str_inp1.compare(str_inp0) == 0)
std::cout << "\nStrings are equal." << std::endl;
else
std::cout << "\nStrings are not equal." << std::endl;
std::cout << "String 2: " << str_inp2 << std::endl;
if (str_inp2.compare(str_inp0) == 0)
std::cout << "\nStrings are equal." << std::endl;
else
std::cout << "\nStrings are not equal." << std::endl;
}Bu örnekte str_inp0, str_inp1 ile karşılaştırılır:
Output
String 1: String Match
Strings are equal.Daha sonra str_inp0, str_inp2 ile karşılaştırılır:
Output
String 2: String Unmatch
Strings are not equal.Bu kod compare() fonksiyonu ile bir dizeyi doğrudan başka bir girdi dizesiyle karşılaştırır.
3. C++'da ilişkisel operatörler
== (eşittir) ve != (eşit değildir) gibi C++ ilişkisel operatörleri dizeleri karşılaştırmada yararlı olabilir.
İki değerin eşit olup olmadığını kontrol edin:
string1 == string2İki değerin eşit olmadığını kontrol edin:
string1 != string2Örnek 1: C++ == operatörünün kullanımı
Aşağıdaki kodu çalıştırın:
#include <iostream>
int main()
{
std::string str_inp1;
std::string str_inp2;
std::cout << "Enter the String 1:\n";
std::cin >> str_inp1;
std::cout << "Enter the String 2:\n";
std::cin >> str_inp2;
if (str_inp1 == str_inp2)
std::cout << "Strings are equal" << std::endl;
else
std::cout << "Strings are not equal" << std::endl;
}"Dize 1" ve "Dize 2" değerlerini sağlayın:
Enter the String 1:
DigitalOcean
Enter the String 2:
digitalocean
Strings are not equalKod iki dizeyi == ile karşılaştırır.
Örnek 2: C++ != operatörünün kullanımı
Aşağıdaki kodu çalıştırın:
#include <iostream>
int main()
{
std::string str_inp1;
std::string str_inp2;
std::cout << "Enter the String 1:\n";
std::cin >> str_inp1;
std::cout << "Enter the String 2:\n";
std::cin >> str_inp2;
if (str_inp1 != str_inp2)
std::cout << "Strings are not equal" << std::endl;
else
std::cout << "Strings are equal" << std::endl;
}"Dize 1" ve "Dize 2" değerlerini sağlayın:
Enter the String 1:
DigitalOcean
Enter the String 2:
DigitalOcean
Strings are equalKod iki dizeyi != ile karşılaştırır.
Sonuç
Bu makalede, C++'ta dize karşılaştırma yöntemlerini öğrendiniz. Bunlara String strcmp() fonksiyonu, yerleşik compare() fonksiyonu ve ilişkisel operatörler (==, !=) dahildir.









