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 |
---|---|---|---|
Duas seqüências de caracteres de intercalação. |
|||
Agrupam-se duas seqüências de caracteres (com distinção entre maiúsculas e minúsculas) |
|||
Agrupar primeiro count caracteres de duas seqüências de caracteres |
|||
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
Manipulação de cadeia de caracteres (CRT)
_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l