3 Möglichkeiten zum Vergleichen von Strings in C++

0 Aktien
0
0
0
0

Einführung

In diesem Artikel erfahren Sie, wie man in C++ Zeichenketten vergleicht.

1. Verwendung der strcmp()-Funktion in C++

C++ Strings verfügen über integrierte Funktionen zur Bearbeitung von String-Daten. Die Funktion `strcmp()` ist eine C-Bibliotheksfunktion, die zum lexikografischen Vergleich zweier Strings verwendet wird.

  • Die Eingabezeichenkette muss ein Zeichenarray vom Typ C sein.
  • strcmp() vergleicht Zeichenketten auch unter Berücksichtigung der Groß- und Kleinschreibung.
int strcmp(const char *str1, const char *str2);

Diese Funktion gibt je nach den übereinstimmenden Elementen die folgenden Werte zurück:

  • Gibt 0 zurück, wenn beide Zeichenketten identisch sind.
  • Wenn der Zeichenwert der ersten Zeichenkette kleiner ist als der der zweiten Eingabezeichenkette, wird < 0 (kleiner als Null) zurückgegeben.
  • Wenn die zweite Zeichenkette im Vergleich größer ist, sind die Ergebnisse > 0 (größer als Null).

Führen Sie folgenden Code aus:

#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;
}

Dies erzeugt folgende Ausgabe:

OutputString 1: String Match
String 2: String Unmatch
The input strings are not equal.

strcmp(str_inp1, str_inp2) ergibt -9. Die Werte von str_inp1 und str_inp2 sind unterschiedlich.

Führen Sie folgenden Code aus:

#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;
}

Dies erzeugt folgende Ausgabe:

Output
String 1: String Match
String 2: String Match
Both the input strings are equal.

strcmp(str_inp1, str_inp2) gibt 0 zurück. Die Werte von str_inp1 und str_inp2 sind gleich.

2. Verwendung der compare()-Funktion in C++

C++ verfügt über eine eingebaute compare()-Funktion zum Vergleichen zweier Zeichenketten.

Die Funktion compare() vergleicht zwei Zeichenketten:

int compare (const string& string-name) const;

Diese Funktion gibt je nach den übereinstimmenden Elementen die folgenden Werte zurück:

  • Gibt 0 zurück, wenn beide Zeichenketten identisch sind.
  • Wenn der Zeichenwert der ersten Zeichenkette kleiner ist als der der zweiten Eingabezeichenkette, wird < 0 (kleiner als Null) zurückgegeben.
  • Wenn die zweite Zeichenkette im Vergleich größer ist, sind die Ergebnisse > 0 (größer als Null).

Führen Sie folgenden Code aus:

#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;
}

In diesem Beispiel werden str_inp1 und str_inp2 mit compare() verglichen:

Output
String 1: String Match
String 2: String Match
Both the input strings are equal.

Da beide Zeichenketten lexikalisch identisch sind, gibt die Funktion 0 zurück.

Führen Sie folgenden Code aus:

#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;
}

In diesem Beispiel wird str_inp0 mit str_inp1 verglichen:

Output
String 1: String Match
Strings are equal.

Dann wird str_inp0 mit str_inp2 verglichen:

Output
String 2: String Unmatch
Strings are not equal.

Dieser Code vergleicht direkt eine Zeichenkette mit einer anderen Eingabezeichenkette mithilfe der compare()-Funktion.

3. Relationale Operatoren in C++

In C++ können relationale Operatoren wie == (gleich) und != (ungleich) beim Vergleichen von Zeichenketten nützlich sein.

Prüfen, ob zwei Werte gleich sind:

string1 == string2

Prüfen, ob zwei Werte ungleich sind:

string1 != string2
Beispiel 1: Verwendung des C++ == Operators

Führen Sie folgenden Code aus:

#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;
}

Geben Sie die Werte "String 1" und "String 2" an:

Enter the String 1:
DigitalOcean
Enter the String 2:
digitalocean
Strings are not equal

Der Code vergleicht zwei Zeichenketten mit ==.

Beispiel 2: Verwendung des C++-Operators !=

Führen Sie folgenden Code aus:

#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;
}

Geben Sie die Werte "String 1" und "String 2" an:

Enter the String 1:
DigitalOcean
Enter the String 2:
DigitalOcean
Strings are equal

Der Code vergleicht zwei Zeichenketten mit !=.

Ergebnis

In diesem Artikel haben Sie die Methoden zum Vergleich von Zeichenketten in C++ kennengelernt. Dazu gehörten die String-Funktion strcmp(), die eingebaute Funktion compare() und die Vergleichsoperatoren (==, !=).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen