strncmp
|
Definiert in Header
<string.h>
|
||
|
int
strncmp
(
const
char
*
lhs,
const
char
*
rhs,
size_t
count
)
;
|
||
Vergleicht bis zu count Zeichen von zwei möglicherweise nullterminierten Arrays. Der Vergleich erfolgt lexikografisch. 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 lexikographischer Reihenfolge erscheint.
Null, wenn lhs und rhs gleich sind, oder wenn count null ist.
Positiver Wert, wenn lhs nach rhs in lexikografischer Reihenfolge erscheint.
Hinweise
Diese Funktion ist nicht gebietsschemabezogen, im Gegensatz zu strcoll und strxfrm .
Beispiel
#include <stdio.h> #include <string.h> void demo(const char* lhs, const char* rhs, int sz) { const int rc = strncmp(lhs, rhs, sz); if (rc < 0) printf("First %d chars of [%s] precede [%s]\n", sz, lhs, rhs); else if (rc > 0) printf("First %d chars of [%s] follow [%s]\n", sz, lhs, rhs); else printf("First %d chars of [%s] equal [%s]\n", sz, lhs, rhs); } int main(void) { const char* string = "Hello World!"; demo(string, "Hello!", 5); demo(string, "Hello", 10); demo(string, "Hello there", 10); demo("Hello, everybody!" + 12, "Hello, somebody!" + 11, 5); }
Ausgabe:
First 5 chars of [Hello World!] equal [Hello!] First 10 chars of [Hello World!] follow [Hello] First 10 chars of [Hello World!] precede [Hello there] First 5 chars of [body!] equal [body!]
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.24.4.4 Die strncmp-Funktion (S: TBD)
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.24.4.4 Die strncmp-Funktion (S: TBD)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.24.4.4 Die strncmp-Funktion (S: 366)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.21.4.4 Die strncmp-Funktion (S: 329)
- C89/C90 Standard (ISO/IEC 9899:1990):
-
- 4.11.4.4 Die strncmp-Funktion
Siehe auch
|
vergleicht zwei Zeichenketten
(Funktion) |
|
|
(C95)
|
vergleicht eine bestimmte Anzahl von Zeichen aus zwei breiten Zeichenketten
(Funktion) |
|
vergleicht zwei Puffer
(Funktion) |
|
|
vergleicht zwei Zeichenketten gemäß der aktuellen Locale
(Funktion) |
|
|
C++ documentation
für
strncmp
|
|