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.

Retornar valor

Cada uma dessas funções retorna um valor que indica a relação de string1 com , string2da seguinte maneira.

Retornar valor 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. wcscollpode falhar se ou for NULL ou string1string2 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 cadeia de caracteres.

Todas essas funções validam seus parâmetros. Se ou for um ponteiro nulo, ou string1string2 se count for maior que , o manipulador de parâmetros inválido será chamado, conforme descrito em Validação de INT_MAXparâ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, consulte Estado global na 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