Namespaces
Variants

std:: strncmp

From cppreference.net
Definiert im Header <cstring>
int strncmp ( const char * lhs, const char * rhs, std:: size_t count ) ;

Vergleicht bis zu count Zeichen von zwei möglicherweise nullterminierten Arrays. Der Vergleich erfolgt lexikographisch. Zeichen nach dem Nullzeichen werden nicht verglichen.

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

Das Verhalten ist undefiniert, wenn der Zugriff über das Ende eines der Arrays lhs oder rhs hinaus erfolgt. Das Verhalten ist undefiniert, wenn entweder lhs oder rhs der Nullzeiger ist.

Inhaltsverzeichnis

Parameter

lhs, rhs - Zeiger auf die möglicherweise nullterminierten Arrays zum Vergleichen
count - maximale Anzahl der zu vergleichenden Zeichen

Rückgabewert

Negativer Wert, wenn lhs vor rhs in der lexikografischen Reihenfolge erscheint.

Null, wenn lhs und rhs gleich sind, oder wenn count null ist.

Positiver Wert, wenn lhs nach rhs in der lexikographischen Reihenfolge erscheint.

Hinweise

Diese Funktion ist, anders als std::strcoll und std::strxfrm , nicht lokalisierungsabhängig.

Beispiel

#include <cstring>
#include <iostream>
void demo(const char* lhs, const char* rhs, int sz)
{
    const int rc = std::strncmp(lhs, rhs, sz);
    if (rc < 0)
        std::cout << "First " << sz << " chars of ["
                  << lhs << "] precede [" << rhs << "]\n";
    else if (rc > 0)
        std::cout << "First " << sz << " chars of ["
                  << lhs << "] follow [" << rhs << "]\n";
    else
        std::cout << "First " << sz << " chars of ["
                  << lhs << "] equal [" << rhs << "]\n";
}
int main()
{
    demo("Hello, world!", "Hello, everybody!", 13);
    demo("Hello, everybody!", "Hello, world!", 13);
    demo("Hello, everybody!", "Hello, world!", 7);
    demo("Hello, everybody!" + 12, "Hello, somebody!" + 11, 5);
}

Ausgabe:

First 13 chars of [Hello, world!] follow [Hello, everybody!]
First 13 chars of [Hello, everybody!] precede [Hello, world!]
First 7 chars of [Hello, everybody!] equal [Hello, world!]
First 5 chars of [body!] equal [body!]

Siehe auch

vergleicht zwei Zeichenketten
(Funktion)
vergleicht eine bestimmte Anzahl von Zeichen aus zwei breiten Zeichenketten
(Funktion)
vergleicht zwei Puffer
(Funktion)
vergleicht zwei Zeichenketten gemäß der aktuellen Locale
(Funktion)
C-Dokumentation für strncmp