Tutorials  /  Linux Basics

Vergleich von Zeichenketten in C++: 3 Methoden im Überblick

Ccentron Redaktion · Mai 2024 ·5 Min. Lesezeit ·Linux Basics, Tutorial

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

Die C++-String-Klasse verfügt über eingebaute Funktionen zur Manipulation von Zeichenketten. Die strcmp()-Funktion ist eine C-Bibliotheksfunktion, die dazu dient, zwei Zeichenketten lexikographisch zu vergleichen.

Syntax von strcmp()

Die Eingabezeichenkette muss ein char-Array vom Typ C-String sein. strcmp() vergleicht die Zeichenketten in einer groß- und kleinschreibungssensitiven Form.

Code
int strcmp(const char *str1, const char *str2);

Diese Funktion gibt je nach Übereinstimmung folgende Werte zurück:

  • Gibt 0 zurück, wenn beide Zeichenketten identisch sind.
  • Gibt < 0 (kleiner als Null) zurück, wenn der Wert des ersten Zeichens der ersten Zeichenkette kleiner ist als der Wert des entsprechenden Zeichens der zweiten Zeichenkette.
  • Ergibt > 0 (größer als Null), wenn die zweite Zeichenkette im Vergleich größer ist.

Beispiel 1: Verwendung von strcmp()

Code
#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 << "\nBeide Eingabezeichenketten sind gleich." << std::endl;
    else
        std::cout << "\nDie Eingabezeichenketten sind nicht gleich." << std::endl;
}

Dies erzeugt die folgende Ausgabe:

Code
String 1: String Match
String 2: String Unmatch

Die Eingabezeichenketten sind nicht gleich.

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

Beispiel 2: Verwendung von strcmp()

Code
#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 << "\nBeide Eingabezeichenketten sind gleich." << std::endl;
    else
        std::cout << "\nDie Eingabezeichenketten sind nicht gleich." << std::endl;
}

Dies erzeugt die folgende Ausgabe:

Code
String 1: String Match
String 2: String Match

Beide Eingabezeichenketten sind gleich.

strcmp(str_inp1, str_inp2) ergibt 0. Die Werte von str_inp1 und str_inp2 sind gleich.

VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

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

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

Syntax von compare()

Die compare()-Funktion vergleicht zwei Zeichenketten:

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

Diese Funktion gibt je nach Übereinstimmung folgende Werte zurück:

  • Gibt 0 zurück, wenn beide Zeichenketten identisch sind.
  • Gibt < 0 (kleiner als Null) zurück, wenn der Wert des ersten Zeichens der ersten Zeichenkette kleiner ist als der Wert des entsprechenden Zeichens der zweiten Zeichenkette.
  • Ergibt > 0 (größer als Null), wenn die zweite Zeichenkette im Vergleich größer ist.

Beispiel 1: Verwendung von compare()

Code
#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 << "\nBeide Eingabezeichenketten sind gleich." << std::endl;
    else if (res < 0)
        std::cout << "\nString 1 ist kleiner als String 2." << std::endl;
    else
        std::cout << "\nString 1 ist größer als String 2." << std::endl;
}

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

Code
String 1: String Match
String 2: String Match

Beide Eingabezeichenketten sind gleich.

Beide Zeichenketten sind lexikographisch identisch, daher gibt die Funktion 0 zurück.

Beispiel 2: Verwendung von compare()

Code
#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 << "\nDie Zeichenketten sind gleich." << std::endl;
    else
        std::cout << "\nDie Zeichenketten sind nicht gleich." << std::endl;

    std::cout << "String 2: " << str_inp2 << std::endl;

    if (str_inp2.compare(str_inp0) == 0)
        std::cout << "\nDie Zeichenketten sind gleich." << std::endl;
    else
        std::cout << "\nDie Zeichenketten sind nicht gleich." << std::endl;
}

In diesem Beispiel wird str_inp0 mit str_inp1 verglichen:

Code
String 1: String Match

Die Zeichenketten sind gleich.

Dann wird str_inp0 mit str_inp2 verglichen:

Code
String 2: String Unmatch

Die Zeichenketten sind nicht gleich.

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

3. Relationale Operatoren in C++

Relationale Operatoren in C++, wie == (doppelter Gleichheitszeichen) und != (ungleich), können bei der Vergleich von Zeichenketten hilfreich sein.

Syntax der relationalen Operatoren

Überprüfen Sie, ob zwei Werte gleich sind:

Code
string1 == string2

Überprüfen Sie, ob zwei Werte ungleich sind:

Code
string1 != string2

Beispiel 1: Verwendung des C++ == Operators

Code
#include <iostream>

int main()
{
    std::string str_inp1;
    std::string str_inp2;

    std::cout << "Geben Sie String 1 ein:\n";
    std::cin >> str_inp1;
    std::cout << "Geben Sie String 2 ein:\n";
    std::cin >> str_inp2;

    if (str_inp1 == str_inp2)
        std::cout << "Die Zeichenketten sind gleich." << std::endl;
    else
        std::cout << "Die Zeichenketten sind nicht gleich." << std::endl;
}

Geben Sie Werte für "String 1" und "String 2" ein:

Code
Geben Sie String 1 ein:
Centron
Geben Sie String 2 ein:
centron

Die Ausgabe lautet:

Code
Die Zeichenketten sind nicht gleich.

Der Code vergleicht die beiden Zeichenketten mit ==.

Beispiel 2: Verwendung des C++ != Operators

Code
#include <iostream>

int main()
{
    std::string str_inp1;
    std::string str_inp2;

    std::cout << "Geben Sie String 1 ein:\n";
    std::cin >> str_inp1;
    std::cout << "Geben Sie String 2 ein:\n";
    std::cin >> str_inp2;

    if (str_inp1 != str_inp2)
        std::cout << "Die Zeichenketten sind nicht gleich." << std::endl;
    else
        std::cout << "Die Zeichenketten sind gleich." << std::endl;
}

Geben Sie Werte für "String 1" und "String 2" ein:

Code
Geben Sie String 1 ein:
Centron
Geben Sie String 2 ein:
Centron

Die Ausgabe lautet:

Code
Die Zeichenketten sind gleich.

Der Code vergleicht die beiden Zeichenketten mit !=.

<h2 ">Produktintegration mit ccloud³

Falls Sie Ihre C++-Anwendungen in einer leistungsfähigen, gehosteten Umgebung ausführen möchten, bietet ccloud³ von centron die optimale Lösung:

  • Managed Cloud Hosting für C++-Anwendungen – Skalierbare VMs für optimale Performance
  • Optimierte Entwicklungsumgebung – Perfekt für C++-Projekte mit Boost & Standardbibliotheken
  • Sichere Infrastruktur – Geschützte Umgebungen mit zuverlässigen Backups

Erleben Sie ccloud³ jetzt selbst! Mehr erfahren

Fazit:

In diesem Artikel haben Sie gelernt, wie Sie Zeichenketten in C++ vergleichen können. Dies umfasste die Verwendung der strcmp()-Funktion von String, der eingebauten compare()-Funktion und der relationalen Operatoren (==, !=). Setzen Sie Ihr Lernen mit weiteren C++-Tutorials fort.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren