strcoll
, wcscoll
, _mbscoll
, _strcoll_l
, , _wcscoll_l
_mbscoll_l
Porovná řetězce pomocí aktuálního národního prostředí nebo zadané LC_COLLATE
kategorie stavu převodu.
Důležité
_mbscoll
a _mbscoll_l
nelze je 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 strcoll(
const char *string1,
const char *string2
);
int wcscoll(
const wchar_t *string1,
const wchar_t *string2
);
int _mbscoll(
const unsigned char *string1,
const unsigned char *string2
);
int _strcoll_l(
const char *string1,
const char *string2,
_locale_t locale
);
int wcscoll_l(
const wchar_t *string1,
const wchar_t *string2,
_locale_t locale
);
int _mbscoll_l(
const unsigned char *string1,
const unsigned char *string2,
_locale_t locale
);
Parametry
string1
, string2
Řetězce ukončené hodnotou null, které se mají porovnat.
locale
Národní prostředí, které se má použít.
Vrácená hodnota
Každá z těchto funkcí vrátí hodnotu označující vztah string1
k string2
následujícímu:
Vrácená hodnota | string1 Vztah kstring2 |
---|---|
< 0 | string1 méně než string2 |
0 | string1 shodný s string2 |
> 0 | string1 větší než string2 |
Každá z těchto funkcí se vrátí _NLSCMPERROR
k chybě. Chcete-li použít _NLSCMPERROR
, uveďte buď ŘETĚZEC. H nebo MBSTRING.H. wcscoll
může selhat, pokud je string1
nebo je NULL
nebo string2
obsahuje kódy širokých znaků mimo doménu kompletující sekvence. Pokud dojde k chybě, wcscoll
může být nastavena errno
na EINVAL
. Chcete-li zkontrolovat chybu při volání wcscoll
, nastavte errno
na hodnotu 0 a potom zkontrolujte errno
po volání wcscoll
.
Poznámky
Každá z těchto funkcí provádí porovnání string1
s rozlišováním velkých a malých písmen a string2
podle aktuálně používané znakové stránky. Tyto funkce by se měly používat 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í řetězců zajímavý.
Všechny tyto funkce ověřují své parametry. Pokud je ukazatel string1
null nebo string2
je count
větší INT_MAX
než , je vyvolána 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
.
Porovnání těchto dvou řetězců je operace závislá na národním prostředí, protože každé národní prostředí má různá pravidla pro řazení znaků. Verze těchto funkcí bez _l
přípony používají pro toto chování závislé na národním prostředí aktuální vlákno. Verze s _l
příponou jsou stejné jako odpovídající funkce bez přípony s tím rozdílem, že používají národní prostředí předané jako parametr místo aktuálního 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ý |
---|---|---|---|
_tcscoll |
strcoll |
_mbscoll |
wcscoll |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
strcoll |
<string.h> |
wcscoll |
<wchar.h>, <string.h> |
_mbscoll , _mbscoll_l |
<mbstring.h> |
_strcoll_l |
<string.h> |
_wcscoll_l |
<wchar.h>, <string.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Viz také
Národní prostředí
Manipulace s řetězci
strcoll
– funkce
localeconv
_mbsnbcoll
, _mbsnbcoll_l
, , _mbsnbicoll
_mbsnbicoll_l
setlocale
, _wsetlocale
strcmp
, , wcscmp
_mbscmp
_stricmp
, _wcsicmp
, _mbsicmp
, _stricmp_l
, , _wcsicmp_l
_mbsicmp_l
strncmp
, wcsncmp
, , _mbsncmp
_mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
_mbsnicmp_l
strxfrm
, wcsxfrm
, , _strxfrm_l
_wcsxfrm_l