Namensräume
Varianten
Aktionen

std::strcmp

Von cppreference.com
< cpp‎ | string‎ | byte
 
 
 
 
Definiert in Header <cstring>
int strcmp( const char* lhs, const char* rhs );

Vergleicht zwei nullterminierte Byte-Strings lexikographisch.

Das Vorzeichen des Ergebnisses ist das Vorzeichen der Differenz zwischen den Werten des ersten Paares von Zeichen (beide als unsigned char interpretiert), die sich in den verglichenen Strings unterscheiden.

Das Verhalten ist undefiniert, wenn lhs oder rhs keine Zeiger auf nullterminierte Strings sind.

Inhalt

[bearbeiten] Parameter

lhs, rhs - Zeiger auf die zu vergleichenden nullterminierten Byte-Strings

[bearbeiten] Rückgabewert

Negativer Wert, wenn lhs lexikographisch vor rhs steht.

Null, wenn lhs und rhs gleich sind.

Positiver Wert, wenn lhs lexikographisch nach rhs steht.

[bearbeiten] Beispiel

#include <algorithm>
#include <cstring>
#include <iostream>
#include <vector>
 
int main() 
{
    std::vector<const char*> cats{"Heathcliff", "Snagglepuss", "Hobbes", "Garfield"};
    std::sort(cats.begin(), cats.end(), [](const char* strA, const char* strB)
    {
        return std::strcmp(strA, strB) < 0;
    }); 
 
    for (const char* cat : cats)
        std::cout << cat << '\n';
}

Ausgabe

Garfield
Heathcliff
Hobbes
Snagglepuss

[bearbeiten] Siehe auch

vergleicht eine bestimmte Anzahl von Zeichen aus zwei Strings
(Funktion) [bearbeiten]
vergleicht zwei breite Zeichenketten
(Funktion) [bearbeiten]
vergleicht zwei Puffer
(Funktion) [bearbeiten]
vergleicht zwei Strings gemäß der aktuellen Locale
(Funktion) [bearbeiten]
C-Dokumentation für strcmp