_mbsnbcoll
, , _mbsnbcoll_l
_mbsnbicoll
_mbsnbicoll_l
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_MAX
als 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