Namensräume
Varianten
Aktionen

strcmp

Von cppreference.com
< c‎ | string‎ | byte
Definiert in Header <string.h>
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 interpretiert als unsigned char), die sich in den verglichenen Strings unterscheiden.

Das Verhalten ist undefiniert, wenn lhs oder rhs keine Zeiger auf nullterminierte Byte-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 kommt.

Null, wenn lhs und rhs gleich sind.

Positiver Wert, wenn lhs lexikographisch nach rhs kommt.

[bearbeiten] Hinweise

Diese Funktion ist nicht gebietssensitiv (locale-sensitive), im Gegensatz zu strcoll und strxfrm.

[bearbeiten] Beispiel

#include <stdio.h>
#include <string.h>
 
void demo(const char* lhs, const char* rhs)
{
    const int rc = strcmp(lhs, rhs);
    const char* rel = rc < 0 ? "precedes" : rc > 0 ? "follows" : "equals";
    printf("[%s] %s [%s]\n", lhs, rel, rhs);
}
 
int main(void)
{
    const char* string = "Hello World!";
    demo(string, "Hello!");
    demo(string, "Hello");
    demo(string, "Hello there");
    demo("Hello, everybody!" + 12, "Hello, somebody!" + 11);
}

Ausgabe

[Hello World!] precedes [Hello!]
[Hello World!] follows [Hello]
[Hello World!] precedes [Hello there]
[body!] equals [body!]

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.24.4.2 Die Funktion strcmp (S. TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.24.4.2 Die Funktion strcmp (S. TBD)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.24.4.2 Die Funktion strcmp (S. 365-366)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.21.4.2 Die Funktion strcmp (S. 328-329)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 4.11.4.2 Die Funktion strcmp

[bearbeiten] Siehe auch

vergleicht eine bestimmte Anzahl von Zeichen zweier Strings
(Funktion) [bearbeiten]
(C95)
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