Sdílet prostřednictvím


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, , _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