Namensräume
Varianten
Aktionen

wcsncmp

Von cppreference.com
< c‎ | string‎ | wide
 
 
 
 
Definiert in Header <wchar.h>
int wcsncmp( const wchar_t* lhs, const wchar_t* rhs, size_t count );
(seit C95)

Vergleicht höchstens count breite Zeichen von zwei nullterminierten breiten Zeichenketten. Der Vergleich erfolgt lexikographisch.

Das Vorzeichen des Ergebnisses ist das Vorzeichen der Differenz zwischen den Werten des ersten Paares von Breitzeichen, die sich in den verglichenen Zeichenketten unterscheiden.

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

Inhalt

[bearbeiten] Parameter

lhs, rhs - Zeiger auf die zu vergleichenden nullterminierten Breitzeichenketten
zählt - Maximale Anzahl von zu vergleichenden Zeichen

[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 im Gegensatz zu wcscoll und wcsxfrm nicht lokalsensitiv.

[bearbeiten] Beispiel

#include <stdio.h>
#include <wchar.h>
#include <locale.h>
 
void demo(const wchar_t *lhs, const wchar_t *rhs, int sz)
{
    int rc = wcsncmp(lhs, rhs, sz);
    if(rc == 0)
        printf("First %d characters of [%ls] equal [%ls]\n", sz, lhs, rhs);
    else if(rc < 0)
        printf("First %d characters of [%ls] precede [%ls]\n", sz, lhs, rhs);
    else if(rc > 0)
        printf("First %d characters of [%ls] follow [%ls]\n", sz, lhs, rhs);
}
 
int main(void)
{
    const wchar_t *str1 = L"안녕하세요";
    const wchar_t *str2 = L"안녕히 가십시오";
 
    setlocale(LC_ALL, "en_US.utf8");
    demo(str1, str2, 5);
    demo(str2, str1, 8);
    demo(str1, str2, 2);
}

Ausgabe

First 5 characters of [안녕하세요] precede [안녕히 가십시오]
First 8 characters of [안녕히 가십시오] follow [안녕하세요]
First 2 characters of [안녕하세요] equal [안녕히 가십시오]

[bearbeiten] Referenzen

  • C11-Standard (ISO/IEC 9899:2011)
  • 7.29.4.4.3 Die Funktion wcsncmp (S. 434)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.24.4.4.3 Die Funktion wcsncmp (S. 380)

[bearbeiten] Siehe auch

(C95)
vergleicht zwei breite Zeichenketten
(Funktion) [bearbeiten]
vergleicht eine bestimmte Anzahl breiter Zeichen aus zwei Arrays
(Funktion) [bearbeiten]
vergleicht zwei breite Zeichenketten gemäß der aktuellen Locale
(Funktion) [bearbeiten]
C++ Dokumentation für wcsncmp