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 |
---|---|---|---|
Agrupar as duas seqüências de caracteres |
|||
Agrupar as duas seqüências de caracteres (caso Kana) |
|||
Agrupar primeiro count caracteres de duas seqüências de caracteres |
|||
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
Manipulação de seqüência de caracteres (CRT)
_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l