strcoll
, wcscoll
, _mbscoll
, _strcoll_l
, _wcscoll_l
, , _mbscoll_l
Compara cadeias de caracteres usando a localidade atual ou uma categoria de estado de conversão especificada LC_COLLATE
.
Importante
_mbscoll
e _mbscoll_l
não podem ser usados em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.
Sintaxe
int strcoll(
const char *string1,
const char *string2
);
int wcscoll(
const wchar_t *string1,
const wchar_t *string2
);
int _mbscoll(
const unsigned char *string1,
const unsigned char *string2
);
int _strcoll_l(
const char *string1,
const char *string2,
_locale_t locale
);
int wcscoll_l(
const wchar_t *string1,
const wchar_t *string2,
_locale_t locale
);
int _mbscoll_l(
const unsigned char *string1,
const unsigned char *string2,
_locale_t locale
);
Parâmetros
string1
, string2
Cadeias de caracteres com terminação nula.
locale
Localidade a usar.
Valor retornado
Cada uma dessas funções retorna um valor que indica a relação de string1
com , string2
da seguinte maneira.
Valor retornado | Relação de string1 com string2 |
---|---|
< 0 | string1 é menor que string2 |
0 | string1 é idêntica a string2 |
> 0 | string1 é maior que string2 |
Cada uma dessas funções retorna _NLSCMPERROR
em um erro. Para usar _NLSCMPERROR
, inclua STRING.H ou MBSTRING.H. wcscoll
pode falhar se ou string1
string2
for NULL
ou contiver códigos de caracteres largos fora do domínio da sequência de agrupamento. Quando um erro ocorre, wcscoll
pode definir errno
para EINVAL
. Para verificar se há um erro em uma chamada para wcscoll
, defina errno
como 0 e, em seguida, verifique errno
depois de chamar wcscoll
.
Comentários
Cada uma dessas funções executa uma comparação de maiúsculas e minúsculas de string1
e string2
, de acordo com a página de código atualmente em uso. Essas funções devem ser usadas somente quando houver uma diferença entre a ordem do conjunto de caracteres e a ordem dos caracteres lexicográficos na página de código atual e essa diferença for de interesse para a comparação de strings.
Todas essas funções validam seus parâmetros. Se or string1
string2
for um ponteiro nulo, ou se count
for maior que INT_MAX
, o manipulador de parâmetro inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução puder continuar, essas funções retornarão _NLSCMPERROR
e definirão errno
para EINVAL
.
A comparação de duas cadeias de caracteres é uma operação dependente de localidade, já que cada localidade tem regras diferentes para classificar caracteres. As versões dessas funções sem o sufixo _l
usam a localidade de thread atual para esse comportamento dependente da localidade; as versões com o sufixo _l
são idênticas à função correspondente sem o sufixo, exceto por usarem a localidade passada como um parâmetro em lugar da localidade atual. Para obter mais informações, consulte Localidade.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H | _UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcscoll |
strcoll |
_mbscoll |
wcscoll |
Requisitos
Rotina | Cabeçalho necessário |
---|---|
strcoll |
<string.h> |
wcscoll |
<wchar.h>, <string.h> |
_mbscoll , _mbscoll_l |
<mbstring.h> |
_strcoll_l |
<string.h> |
_wcscoll_l |
<wchar.h>, <string.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Confira também
Localidade
Manipulação de cadeia de caracteres
Funções strcoll
localeconv
_mbsnbcoll
, _mbsnbcoll_l
, _mbsnbicoll
, _mbsnbicoll_l
setlocale
, _wsetlocale
strcmp
, wcscmp
, _mbscmp
_stricmp
, _wcsicmp
, _mbsicmp
, _stricmp_l
, _wcsicmp_l
, , _mbsicmp_l
strncmp
, wcsncmp
, _mbsncmp
, _mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, _wcsnicmp_l
, , _mbsnicmp_l
strxfrm
, wcsxfrm
, _strxfrm_l
, _wcsxfrm_l