C++'da Dizeleri Karşılaştırmanın 3 Yolu

0 Hisse senetleri
0
0
0
0

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 equal

Kod 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 equal

Kod 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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz