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?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

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