Compartilhar via


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 , string2da 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