Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Vergleicht n Bytes von zwei Multibyte-Zeichenfolgen mithilfe von Multibyte-Codepage-Informationen.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).
Syntax
int _mbsnbcoll(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsnbcoll_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);
int _mbsnbicoll(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsnbicoll_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);
Parameter
string1, string2
Zu vergleichende Zeichenfolgen.
count
Anzahl der zu vergleichenden Bytes.
locale
Zu verwendendes Gebietsschema.
Rückgabewert
Der Rückgabewert gibt die Beziehung der untergeordneten Zeichenfolgen von string1 und string2 an.
| Rückgabewert | Beschreibung |
|---|---|
| < 0 | Die untergeordnete Zeichenfolge string1 ist kleiner als die untergeordnete Zeichenfolge string2. |
| 0 | Die untergeordnete Zeichenfolge string1 ist mit der untergeordneten Zeichenfolge string2 identisch. |
| > 0 | Die untergeordnete Zeichenfolge string1 ist größer als die untergeordnete Zeichenfolge string2. |
Wenn string1 oder string2 NULL count größer INT_MAXals ist, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen _NLSCMPERROR zurück und stellen errno auf EINVAL ein. Um _NLSCMPERROR zu verwenden, fügen Sie entweder String.h oder Mbstring.h ein.
Hinweise
Jede dieser Funktionen sortiert höchstens die ersten count-Bytes in string1 und string2 und gibt einen Wert zurück, der die Beziehung zwischen den resultierenden untergeordneten Zeichenfolgen von string1 und string2 angibt. Wenn das letzte Byte in der Teilzeichenfolge von string1 oder string2 ein Leadbyte ist, ist es nicht im Vergleich enthalten. Diese Funktionen vergleichen nur vollständige Zeichen in den Teilzeichenfolgen. _mbsnbicoll ist eine Version von _mbsnbcoll ohne Berücksichtigung von Groß- und Kleinschreibung. Wie _mbsnbcmp und _mbsnbicmp sortieren _mbsnbcoll und _mbsnbicoll die beiden Multibyte-Zeichenfolgen entsprechend der lexikografischen Reihenfolge, die von der aktuell verwendeten Multibyte-Codepage angegeben wird.
Bei manchen Codepages und entsprechenden Zeichensätzen kann die Reihenfolge der Zeichen im Zeichensatz möglicherweise von der lexikografischen Reihenfolge abweichen. Im Gebietsschema "C" entspricht die Reihenfolge der Zeichen im ASCII-Zeichensatz der lexikographischen Reihenfolge der Zeichen. In bestimmten europäischen Codepages beispielsweise steht im Zeichensatz das Zeichen "a" (Wert 0x61) vor dem Zeichen "ä" (Wert 0xE4), das Zeichen "ä" steht lexikografisch gesehen jedoch vor dem Zeichen "a". Um in solch einem Fall einen lexikografischen Vergleich von Zeichenfolgen nach Bytes durchzuführen, verwenden Sie _mbsnbcoll anstelle von _mbsnbcmp, und um nur die Zeichenfolgengleichheit zu überprüfen, verwenden Sie _mbsnbcmp.
Da die coll-Funktionen Zeichenfolgen für Vergleiche lexikografisch sortieren, während die cmp-Funktionen nur die Zeichenfolgengleichheit testen, sind die coll-Funktionen wesentlich langsamer als die entsprechenden cmp-Versionen. Daher sollten die coll Funktionen nur verwendet werden, wenn es einen Unterschied zwischen der Zeichensatzreihenfolge und der lexikografischen Zeichenreihenfolge auf der aktuellen Codeseite gibt und dieser Unterschied für den Vergleich von Interesse ist.
Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieeinstellung des Gebietsschemas beeinflusst. Weitere Informationen finden Sie unter setlocale. Die Versionen dieser Funktionen ohne das _l-Suffix verwenden das aktuelle Gebietsschema für dieses vom Gebietsschema abhängige Verhalten; die Versionen mit dem _l-Suffix sind beinahe identisch, verwenden jedoch stattdessen den ihnen übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
| Tchar.h-Routine | _UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
|---|---|---|---|
_tcsncoll |
_strncoll |
_mbsnbcoll |
_wcsncoll |
_tcsncoll_l |
_strncoll_l |
_mbsnbcoll_l |
_wcsncoll_l |
_tcsnicoll |
_strnicoll |
_mbsnbicoll |
_wcsnicoll |
_tcsnicoll_l |
_strnicoll_l |
_mbsnbicoll_l |
_wcsnicoll_l |
Anforderungen
| Routine | Erforderlicher Header |
|---|---|
_mbsnbcoll |
<mbstring.h> |
_mbsnbcoll_l |
<mbstring.h> |
_mbsnbicoll |
<mbstring.h> |
_mbsnbicoll_l |
<mbstring.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Siehe auch
Zeichenfolgenbearbeitung
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_mbsnbicmp, _mbsnbicmp_l
strcoll -Funktionen
strncmp, , wcsncmp_mbsncmp_mbsncmp_l
_strnicmp, , _wcsnicmp_mbsnicmp, _strnicmp_l, , _wcsnicmp_l_mbsnicmp_l