strcoll
– funkce
Každá z funkcí strcoll
wcscoll
porovnává dva řetězce podle LC_COLLATE
nastavení kategorie znakové stránky národního prostředí, která se právě používá. Každá z _mbscoll
funkcí porovnává dva řetězce podle aktuálně používané znakové stránky s vícebajty. coll
Pokud je rozdíl mezi pořadím znakové sady a pořadím lexikografických znaků na aktuální znakové stránce, použijte funkce pro porovnávání řetězců, pokud je rozdíl pro porovnání zajímavý. K otestování rovnosti řetězců použijte odpovídající cmp
funkce.
strcoll – funkce
SBCS | Kódování Unicode | MBCS | Popis |
---|---|---|---|
strcoll |
wcscoll |
_mbscoll |
Kompletování dvou řetězců |
_stricoll |
_wcsicoll |
_mbsicoll |
Sbalit dva řetězce (nerozlišující malá a velká písmena) |
_strncoll |
_wcsncoll |
_mbsncoll |
Sbalit první count znaky dvou řetězců |
_strnicoll |
_wcsnicoll |
_mbsnicoll |
Sbalit první count znaky dvou řetězců (nerozlišující malá a velká písmena) |
Poznámky
Verze těchto funkcí (strcoll
, stricoll
, , _strncoll
a _strnicoll
) s jedním bajtem (SBCS) porovnávají string1
a string2
podle LC_COLLATE
nastavení kategorie aktuálního národního prostředí. Tyto funkce se liší od odpovídajících strcmp
funkcí v tom, že strcoll
funkce používají informace o znakové stránce národního prostředí, které poskytují kompletující sekvence. Pro porovnání řetězců v národních prostředích, ve kterých se pořadí znakových množiny a pořadí lexikografických znaků liší, strcoll
měly by být funkce použity místo odpovídajících strcmp
funkcí. Další informace naleznete v LC_COLLATE
tématu setlocale
.
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 se nejedná o případ: pořadí znaků v znakové sadě ASCII je 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í v takové instanci, použijte strcoll
místo strcmp
. Alternativně můžete použít strxfrm
u původních řetězců a pak použít strcmp
výsledné řetězce.
strcoll
, stricoll
, _strncoll
a _strnicoll
automaticky zpracovat vícebajtové znakové řetězce podle aktuálně používané znakové stránky národního prostředí, stejně jako jejich širokoznakové (Unicode) protějšky. Verze těchto funkcí (MBCS) s vícebajtovými znaky však kompletují řetězce na základě znakové stránky s vícebajty, která se aktuálně používá.
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 by proto měly být použity pouze v případě, coll
ž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ý.
Viz také
Národní prostředí
Manipulace s řetězci
localeconv
_mbsnbcoll
, _mbsnbcoll_l
, , _mbsnbicoll
_mbsnbicoll_l
setlocale
, _wsetlocale
strcmp
, , wcscmp
_mbscmp
strncmp
, wcsncmp
, , _mbsncmp
_mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
_mbsnicmp_l
strxfrm
, wcsxfrm
, , _strxfrm_l
_wcsxfrm_l