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 |
---|---|---|---|
Porównuje dwa ciągi |
|||
Porównuje dwa ciągi (z uwzględnieniem wielkości liter) |
|||
Najpierw zestawiać count dwóch ciągów znaków |
|||
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
_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l