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
ModSecurity cPanel

Sicherheitstools in cPanel – Expertenleitfaden

Wenn Sie cPanel zur Verwaltung Ihres Webhostings nutzen, wissen Sie wahrscheinlich, dass Sicherheit eine der Grundlagen für den Erfolg Ihrer Website und das Vertrauen Ihrer Nutzer ist. cPanel bietet Ihnen eine Vielzahl von Tools, mit denen Sie die Sicherheit Ihrer Website deutlich verbessern können. In diesem Artikel gehen wir näher auf diese Tools ein und stellen Ihnen Links zu offizieller Dokumentation und weiterführenden Artikeln zur Verfügung, damit Sie die Sicherheit Ihres Hostings souveräner konfigurieren können.