Sdílet prostřednictvím


_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l

n Porovná bajty dvou vícebajtových řetězců znaků pomocí informací o vícebajtové znakové stránce.

Důležité

Toto rozhraní API nelze použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.

Syntaxe

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
);

Parametry

string1, string2
Řetězce, které chcete porovnat.

count
Počet bajtů, které se mají porovnat

locale
Národní prostředí, které se má použít.

Vrácená hodnota

Vrácená hodnota označuje vztah podřetězenců string1 a string2.

Vrácená hodnota Popis
< 0 string1 podřetětěžce menší než string2 podřetětěr.
0 string1 podřetětěce shodný s string2 podřetětcem.
> 0 string1 podřetětěr větší než string2 podřetětěr.

Pokud string1 nebo je nebo string2 je NULL většíINT_MAX, count vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud provádění může pokračovat, tyto funkce se vrátí _NLSCMPERROR a nastaví errno na EINVAL. Chcete-li použít _NLSCMPERROR, zahrňte buď String.h, nebo Mbstring.h.

Poznámky

Každá z těchto funkcí nejvíce kompletuje první count bajty a string1string2 vrací hodnotu označující vztah mezi výslednými podřetězci string1 a string2. Pokud konečný bajt v podřetětěci string1 nebo string2 je hlavní bajt, není zahrnut v porovnání; tyto funkce porovnávají pouze úplné znaky v podřetětědcích. _mbsnbicollnerozlišuje malá a velká písmena verze ._mbsnbcoll Podobně _mbsnbcmp a _mbsnbicmp_mbsnbcoll a kompletujte _mbsnbicoll dva řetězce s vícebajtovými znaky podle lexikografického pořadí určeného vícebajtovou znakovou stránkou, která se aktuálně používá.

U některých znakových stránek a odpovídajících znakových sad se pořadí znaků v sadě znaků může lišit od pořadí lexikálních znaků. V národním prostředí jazyka C je pořadí znaků v znakové sadě ASCII stejné jako lexikální pořadí znaků. V některých evropských znakových stránkách však znak "a" (hodnota 0x61) předchází znaku ä (hodnota 0xE4), ale znak "ä" předchází znaku "a". Chcete-li provést lexikografické porovnání řetězců podle bajtů v takové instanci, použijte _mbsnbcoll místo _mbsnbcmp; chcete-li zkontrolovat pouze rovnost řetězců, použijte _mbsnbcmp.

coll Vzhledem k tomu, že funkce kompletují řetězce lexicicky pro porovnání, zatímco cmp funkce jednoduše testují rovnost řetězců, coll jsou funkce mnohem pomalejší než odpovídající cmp verze. Funkce coll by proto měly být použity pouze v případě, že je rozdíl mezi pořadím znakové sady a pořadím lexikografických znaků v aktuální znakové stránce a tento rozdíl je pro porovnání zajímavý.

Výstupní hodnota je ovlivněna nastavením LC_CTYPE nastavení kategorie národního prostředí. Další informace najdete na webu setlocale. Verze těchto funkcí bez _l přípony používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s _l příponou jsou shodné s tím rozdílem, že místo toho používají předaný parametr národního prostředí. Další informace naleznete v tématu Národní prostředí.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

Rutina Tchar.h _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_tcsncoll _strncoll _mbsnbcoll _wcsncoll
_tcsncoll_l _strncoll_l _mbsnbcoll_l _wcsncoll_l
_tcsnicoll _strnicoll _mbsnbicoll _wcsnicoll
_tcsnicoll_l _strnicoll_l _mbsnbicoll_l _wcsnicoll_l

Požadavky

Rutina Požadovaný hlavičkový soubor
_mbsnbcoll <mbstring.h>
_mbsnbcoll_l <mbstring.h>
_mbsnbicoll <mbstring.h>
_mbsnbicoll_l <mbstring.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Viz také

Manipulace s řetězci
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_mbsnbicmp, _mbsnbicmp_l
strcoll – funkce
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l