Udostępnij za pośrednictwem


strcoll, funkcje

Każda z strcoll funkcji i wcscoll porównuje dwa ciągi zgodnie z LC_COLLATE ustawieniem kategorii aktualnie używanej strony kodowej ustawień regionalnych. Każda z _mbscoll funkcji porównuje dwa ciągi zgodnie ze stroną kodową wielobajtową, która jest obecnie używana. coll Użyj funkcji dla porównań ciągów, gdy istnieje różnica między kolejnością zestawu znaków a kolejnością znaków leksykograficznej na bieżącej stronie kodowej, jeśli różnica jest interesująca dla porównania. Użyj odpowiednich cmp funkcji, aby przetestować tylko pod kątem równości ciągów.

strcoll — Funkcje

SBCS Unicode MBCS opis
strcoll wcscoll _mbscoll Sortowanie dwóch ciągów
_stricoll _wcsicoll _mbsicoll Sortowanie dwóch ciągów (bez uwzględniania wielkości liter)
_strncoll _wcsncoll _mbsncoll Sortowanie pierwszych count znaków dwóch ciągów
_strnicoll _wcsnicoll _mbsnicoll Sortowanie pierwszych count znaków dwóch ciągów (bez uwzględniania wielkości liter)

Uwagi

Wersje tych funkcji (SBCS) z pojedynczym bajtem (strcoll, stricoll, _strncolli _strnicoll) porównują string1 i string2 zgodnie z LC_COLLATE ustawieniem kategorii bieżących ustawień regionalnych. Te funkcje różnią się od odpowiednich strcmp funkcji, w których strcoll funkcje używają informacji o stronie kodu ustawień regionalnych, które udostępniają sekwencje sortowania. W przypadku porównań ciągów w ustawieniach regionalnych, w których kolejność zestawu znaków i kolejność znaków leksykograficznej różnią się, strcoll należy używać funkcji zamiast odpowiednich strcmp funkcji. Aby uzyskać więcej informacji na temat LC_COLLATEprogramu , zobacz setlocale.

W przypadku niektórych stron kodowych i odpowiadających im zestawów znaków kolejność znaków w zestawie znaków może różnić się od kolejności znaków leksykograficznej. W ustawieniach regionalnych "C" nie jest tak: kolejność znaków w zestawie znaków ASCII jest taka sama jak kolejność znaków leksykograficznej znaków. Jednak na niektórych stronach kodu europejskiego, na przykład znak "a" (wartość 0x61) poprzedza znak "ä" (wartość 0xE4) w zestawie znaków, ale znak "ä" poprzedza znak "a" leksykograficznie. Aby wykonać porównanie leksykograficzne w takim wystąpieniu, należy użyć strcoll zamiast strcmp. Alternatywnie można użyć strxfrm w oryginalnych ciągach, a następnie użyć strcmp w ciągach wynikowych.

strcoll, , stricoll_strncolli _strnicoll automatycznie obsługują ciągi wielobajtowe według aktualnie używanej strony kodowej ustawień regionalnych, podobnie jak ich odpowiedniki z szerokim znakiem (Unicode). Wersje wielobajtowego znaku (MBCS) tych funkcji, jednak sortują ciągi na podstawie znaków zgodnie ze stroną kodową wielobajtową, która jest obecnie używana.

coll Ponieważ funkcje sortują ciągi leksykograficznie w celu porównania, podczas gdy cmp funkcje po prostu testują równość ciągów, coll funkcje są znacznie wolniejsze niż odpowiednie cmp wersje. W związku z tym funkcje powinny być używane tylko wtedy, coll gdy istnieje różnica między kolejnością zestawu znaków a kolejnością znaków leksykograficznej na bieżącej stronie kodowej, a ta różnica jest interesująca dla porównania ciągów.

Zobacz też

ustawienia regionalne
Manipulowanie ciągami
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