Compartilhar via


Funções strcoll

Cada o strcoll e wcscoll funções compara duas seqüências de acordo com o LC_COLLATE categoria de configuração da página de código local em uso no momento. Cada o _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 o conjunto de caracteres ordem e a ordem de caractere lexicographic na página de código corrente e essa diferença é de interesse para comparação. Use o correspondente cmp funções para teste somente para seqüência de caracteres de igualdade.

Funções strcoll

SBCS

Unicode

MBCS

Descrição

strcoll

wcscoll

_mbscoll

Agrupar as duas seqüências de caracteres

_stricoll

_wcsicoll

_mbsicoll

Agrupar as duas seqüências de caracteres (caso Kana)

_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 (não diferenciar maiúsculas de minúsculas)

Comentários

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

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

strcoll, stricoll, _strncoll, e _strnicoll tratar automaticamente sistema autônomo seqüências de caractere de multibyte de acordo com para a página de código de localidade em uso no momento, assim sistema autônomo suas contrapartes (Unicode) de caractere largos. As caracteres multibyte (MBCS) versões dessas funções, no entanto, intercalação cadeias de caracteres em cada caractere de acordo com para a página de código multibyte atualmente em uso.

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

Consulte também

Referência

Localidade

Manipulação de seqüência 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