_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 string1
string2
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. _mbsnbicoll
nerozliš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 definovaný |
_UNICODE definovaný |
---|---|---|---|
_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