Compartilhar via


Funções strcoll

Cada uma das funções de strcoll e de wcscoll compara duas cadeias de caracteres de acordo com a configuração da categoria de LC_COLLATE de página de código da localidade em uso. Cada uma das funções de _mbscoll compara duas cadeias de caracteres de acordo com a página de código de multibyte atualmente em uso. Use as funções de coll para comparações de cadeias de caracteres quando há uma diferença entre a ordem do conjunto de caracteres e ordem lexicographic de caractere na página de código atual e essa diferença é interessante para comparação. Use as funções correspondentes de cmp para testar somente para a igualdade de cadeia de caracteres.

funções de strcoll

SBCS

Unicode

MBCS

Descrição

strcoll

wcscoll

_mbscoll

Use duas cadeias de caracteres

_stricoll

_wcsicoll

_mbsicoll

Use duas cadeias de caracteres (sem diferenciação de maiúsculas e minúsculas)

_strncoll

_wcsncoll

_mbsncoll

Ordene primeiros caracteres de count de duas cadeias de caracteres

_strnicoll

_wcsnicoll

_mbsnicoll

Ordene primeiros caracteres de count de duas cadeias de caracteres (sem diferenciação de maiúsculas e minúsculas)

Comentários

As versões (SBCS) de caractere de byte único dessas funções (strcoll, stricoll, _strncoll, e _strnicoll) se comparam string1 e string2 de acordo com a configuração da categoria de LC_COLLATE de localidade atual. Essas funções são diferentes das funções correspondentes de strcmp que as funções de strcoll usam informações de página de código de localidade que fornece sequências de agrupamento. Para comparações de cadeias de caracteres em localidades em que a ordem do conjunto de caracteres e ordem lexicographic de caracteres forem diferentes, as funções de strcoll devem ser usadas em vez das funções correspondentes de strcmp . Para obter mais informações sobre LC_COLLATE, consulte setlocale.

Para algumas páginas de código e conjuntos de caracteres correspondentes, a ordem de caracteres no conjunto de caracteres pode diferir da ordem lexicographic de caractere. Na localidade de C, este é não o casos: a ordem dos caracteres no conjunto de caracteres ASCII é a mesma que a ordem lexicográfica de caracteres. No entanto, em determinadas páginas de código europeias, por exemplo, o caractere "a" (valor 0x61) precede o caractere "ä" (valor 0xE4) no conjunto de caracteres, mas o caractere "ä" precede o caractere "a" lexicograficamente. Para executar uma comparação lexicographic nessa instância, use strcoll em vez de strcmp. Como alternativa, você pode usar strxfrm em cadeias de caracteres original, o usa strcmp em cadeias de caracteres resultante.

strcoll, stricoll, _strncoll, e de _strnicoll cadeias de caracteres de multibyte- caractere de identificador automaticamente de acordo com a página de código da localidade em uso, como faz suas contrapartes ampla de caractere Unicode (). As versões (MBCS) de multibyte- caractere dessas funções, porém, as regras de cadeias de caracteres em uma base de caracteres de acordo com a página de código de multibyte atualmente em uso.

Como as funções de coll suportam cadeias de caracteres graficamente léxicas para comparação e as funções de cmp simplesmente testam a igualdade da cadeia de caracteres, as funções de coll são muito mais lentas que as versões correspondentes de cmp. Em virtude disso, as funções de coll devem ser usadas somente quando há uma diferença entre a ordem do conjunto de caracteres e ordem lexicographic de caractere na página de código atual e essa diferença é interessante para a comparação de cadeia de caracteres.

Consulte também

Referência

Localidade

Manipulação da cadeia de caracteres (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