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
Yerel ve Uzak Dizinleri Senkronize Etmek İçin Rsync Nasıl Kullanılır

Sunucu ile yerel sistem arasında dizinlerin senkronizasyonu rsync

Dosya senkronizasyonu, veri depolama, yedekleme ve sunucu yönetimindeki en önemli işlemlerden biridir. rsync aracı bu görev için güçlü, esnek ve optimize edilmiş bir seçenektir. Bu kılavuz, yerel ve uzak dizinleri (sunucuda) rsync ile nasıl senkronize edeceğinizi, yedeklemeler için nasıl kullanacağınızı ve transferleri nasıl otomatikleştireceğinizi gösterecektir.