std::strncmp
| Definiert in Header <cstring> |
||
| int strncmp( const char* lhs, const char* rhs, std::size_t count ); |
||
Vergleicht maximal count Zeichen von zwei möglicherweise null-terminierten 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 Paares von Zeichen (beide interpretiert als unsigned char), die sich in den verglichenen Arrays unterscheiden.
Das Verhalten ist undefiniert, wenn auf über das Ende eines der Arrays lhs oder rhs zugegriffen wird. Das Verhalten ist undefiniert, wenn lhs oder rhs ein Nullzeiger ist.
Inhalt |
[edit] Parameter
| lhs, rhs | - | Zeiger auf die möglicherweise null-terminierten Arrays, die verglichen werden sollen |
| zählt | - | Maximale Anzahl von zu vergleichenden Zeichen |
[edit] Rückgabewert
Negativer Wert, wenn lhs lexikographisch vor rhs steht.
Null, wenn lhs und rhs gleich sind, oder wenn count Null ist.
Positiver Wert, wenn lhs lexikographisch nach rhs steht.
[edit] Hinweise
Diese Funktion ist nicht gebietssensitiv, im Gegensatz zu std::strcoll und std::strxfrm.
[edit] 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!]
[edit] Siehe auch
| vergleicht zwei Strings (Funktion) | |
| vergleicht eine bestimmte Anzahl von Zeichen aus zwei breiten Zeichenketten (Funktion) | |
| vergleicht zwei Puffer (Funktion) | |
| vergleicht zwei Strings gemäß der aktuellen Locale (Funktion) | |
| C-Dokumentation für strncmp
| |