Freigeben über


_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 unter CRT-Funktionen nicht mit /ZW unterstützt.

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 gleich NULL ist oder count größer als INT_MAX ist, wird der Handler für ungültige Parameter aufgerufen (siehe Parametervalidierung). 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 endgültige Byte der Teilzeichenfolge von string1 oder string2 ein führendes Byte ist, ist es nicht Teil des Vergleichs. Diese Funktionen vergleichen nur vollständige Zeichen in den untergeordneten Zeichenfolgen. _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 "C "-Gebietsschema ist dies nicht der Fall: Die Reihenfolge der Zeichen im ASCII-Zeichensatz entspricht der lexikografischen 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 in der aktuellen Codepage einen Unterschied zwischen der Reihenfolge des Zeichensatzes und der lexikografischen Reihenfolge gibt, und dieser Unterschied für den Zeichenfolgenvergleich relevant ist.

Der Ausgabewert ist von der LC_CTYPE-Kategorieneinstellung des Gebietsschemas betroffen; 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.

Zuordnung generischer Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tcsncoll

_strncoll

_mbsnbcoll

_wcsncoll

_tcsncoll_l

_strncoll, _wcsncoll, _mbsncoll, _strncoll_l, _wcsncoll_l, _mbsncoll_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

Referenz

Zeichenfolgenbearbeitung (CRT)

_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