Compartilhar via


Funções de strcoll

Cada um a strcoll e wcscoll funções compara duas seqüências de acordo com o LC_COLLATE definição de categoria da página de código de localidade em uso no momento.Cada um a _mbscoll funções compara duas seqüências de acordo com a página de código multibyte atualmente em uso.Use o coll funções para comparações de seqüência de caracteres quando há uma diferença entre a ordem de conjunto de caracteres e a ordem de caracteres lexicographic na página de código atual e essa diferença é de interesse para a comparação.Use o correspondente cmp funções para testar apenas para string de igualdade.

Funções de strcoll

SBCS

Unicode

MBCS

Descrição

strcoll

wcscoll

_mbscoll

Duas seqüências de caracteres de intercalação.

_stricoll

_wcsicoll

_mbsicoll

Agrupam-se duas seqüências de caracteres (com distinção entre maiúsculas e minúsculas)

_strncoll

_wcsncoll

_mbsncoll

Agrupar primeiro count caracteres de duas seqüências de caracteres

_strnicoll

_wcsnicoll

_mbsnicoll

Agrupar primeiro count caracteres de duas seqüências de caracteres (diferencia maiúsculas de minúsculas)

Comentários

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

Algumas páginas de código e conjuntos de caracteres correspondente, a ordem dos caracteres no conjunto de caracteres pode diferir da ordem de caracteres lexicographic.Na localidade "C", esse não é o caso: a ordem dos caracteres no conjunto de caracteres ASCII é igual a lexicographic ordem dos caracteres.No entanto, em certas páginas de código europeu, por exemplo, o caractere 'a' (valor 0x61) precede o caractere 'ç' (valor 0xE4) no caractere definido, mas o caractere 'ç' precede o caractere 'a' lexicograficamente.Para realizar uma comparação lexicographic nesse caso, use strcoll em vez de strcmp.Como alternativa, você pode usar strxfrm em cadeias de caracteres originais, em seguida, use strcmp sobre as seqüências resultantes.

strcoll, stricoll, _strncoll, e _strnicoll automaticamente a lidar com seqüências de caracteres multibyte de acordo com a página de código de localidade atualmente em uso, assim como suas contrapartes de caractere largo (Unicode).As versões de caracteres multibyte (MBCS) dessas funções, no entanto, agrupam-se seqüências de caracteres em uma base de caractere de acordo com para a página de código multibyte atualmente em uso.

Porque o coll funções de intercalação strings lexicograficamente para comparação, enquanto o cmp funções simplesmente testar igualdade de seqüência de caracteres, o coll funções são muito mais lentas do que o correspondente cmp versões.Portanto, o coll funções devem ser usadas apenas quando há uma diferença entre a ordem de conjunto de caracteres e a ordem de caracteres lexicographic na página de código atual e essa diferença é de interesse para a comparação de seqüência de caracteres.

Consulte também

Referência

Localidade

Manipulação de 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