Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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, , _strncolla _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_COLLATEté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, _strncolla _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