Udostępnij za pośrednictwem


Funkcje strcoll

Każdy z strcoll i wcscoll funkcje porównuje dwa ciągi, zgodnie z LC_COLLATE kategorii ustawienie regionalne strony kodowej aktualnie w użyciu.Każdy z _mbscoll funkcje porównuje dwa ciągi, zgodnie z obecnie używanej strony kodowej wielobajtowych.Użyj coll funkcje do porównywania ciągów znaków, gdy istnieje różnica między kolejność zestaw znaków i kolejność znaków lexicographic w bieżącej strony kodowej i różnica ta jest przedmiotem zainteresowania dla porównania.Użyj odpowiedniego cmp funkcje do testowania tylko ciąg znaków równości.

Funkcje strcoll

SBCS

Unicode

MBCS

Opis

strcoll

wcscoll

_mbscoll

Porównuje dwa ciągi

_stricoll

_wcsicoll

_mbsicoll

Porównuje dwa ciągi (z uwzględnieniem wielkości liter)

_strncoll

_wcsncoll

_mbsncoll

Najpierw zestawiać count dwóch ciągów znaków

_strnicoll

_wcsnicoll

_mbsnicoll

Najpierw zestawiać count znaków z dwóch ciągów (bez uwzględniania wielkości liter)

Uwagi

Wersje znaków jednobajtowych (SBCS), te funkcje (strcoll, stricoll, _strncoll, i _strnicoll) porównanie string1 i string2 zgodnie z LC_COLLATE kategorii ustawienie bieżące ustawienia regionalne.Funkcje te różnią się od odpowiadających im strcmp funkcji, w tym strcoll funkcje używają ustawień regionalnych informacje strony kodowej, która zapewnia sekwencji sortowania.Do porównywania ciągów znaków w lokalizacjach, w których zamówienie zestawu znaków i różnią się kolejność znaków lexicographic strcoll funkcji należy używać zamiast odpowiadających im strcmp funkcji.Aby uzyskać więcej informacji na LC_COLLATE, zobacz setlocale.

Niektórych stron kodowych i odpowiadające im zestawy znaków kolejności znaków w zestawie znaków może być inna niż kolejność znaków lexicographic.W ustawieniach regionalnych "C", to nie dotyczy to: kolejność znaków w zestawie znaków ASCII jest taka sama, jak kolejność lexicographic znaków.Jednakże w niektórych stron kodowych Europejskiego, na przykład znak wartość "" (0x61) poprzedza znak "ź" (0xE4) w znak ustawiona wartość, ale znak "ź" poprzedza znak '' lexicographically.Aby przeprowadzić porównanie lexicographic w takie wystąpienie, użyj strcoll zamiast strcmp.Alternatywnie, można użyć strxfrm na oryginalny ciągów, następnie za pomocą strcmp na ciągi wynikowy.

strcoll, stricoll, _strncoll, i _strnicoll automatycznie obsługiwać ciągi znaków wielobajtowych zgodnie z strony kodowej locale aktualnie w użyciu, jak ich odpowiedniki szerokich znaków (Unicode).Wersje znaków wielobajtowych (MBCS) z tych funkcji, jednak sortowane ciągi na podstawie znaku zgodnie z obecnie używanej strony kodowej wielobajtowych.

Ponieważ coll funkcje zestawia ciągów lexicographically dla porównania, należy cmp funkcji po prostu przetestować na ciąg znaków równości, coll są znacznie wolniejsze niż odpowiadające im funkcje cmp wersji.W związku z tym coll funkcji należy używać tylko wtedy, gdy istnieje różnica między kolejność zestaw znaków i kolejność znaków lexicographic w bieżącej strony kodowej i różnica ta ma znaczenie dla porównania ciągów.

Zobacz też

Informacje

Ustawienia regionalne

Manipulowanie ciągami (CRT)

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