Compartilhar via


strcoll, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l, _mbscoll_l

Compara cadeias de caracteres usando a localidade atual ou uma categoria especificada de conversão- estado de LC_COLLATE.

Importante

_mbscoll e _mbscoll_l não podem ser usados em aplicativos executados no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /ZW.

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 terminadas com Null para comparação.

  • locale
    Localidade a ser usada.

Valor de retorno

Cada uma dessas funções retorna um valor que indica a relação de string1 com string2*,*, conforme a seguir

Valor de retorno

Relação de string1 com string2

< 0

string1 menor que string2

0

string1 idêntico 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 string1 ou string2 for NULO ou contiver códigos de caracteres amplos fora do domínio da sequencia de agrupamento. Quando ocorre um erro, wcscoll pode definir errno como EINVAL. Para verificar se há um erro em uma chamada a wcscoll, defina errno para 0 e verifique errno após a chamada wcscoll.

Comentários

Cada uma dessas funções executa uma comparação que diferencia maiúsculas de minúsculas de string1 e de string2 de acordo com a página de código atualmente em uso. Essas funções devem ser usadas somente quando há uma diferença entre a ordem do conjunto de caracteres e a ordem de caracteres lexicográficos na página de código atual, e essa diferença é interessante para comparação de cadeia de caracteres.

Todas essas funções validam seus parâmetros. Se string1 ou string2 for um ponteiro nulo, ou se count for maior que INT_MAX, o manipulador de parâmetro inválido será chamado, conforme descrito em Validação do parâmetro . Se a execução puder continuar, essas funções retornarão _NLSCMPERROR e definirão errno para EINVAL.

A comparação das duas cadeias de caracteres é uma operação dependente de local, visto que cada localidade tem diferentes regras para ordenar caracteres. As versões dessas funções sem o sufixo _l usam a localidade do thread atual para esse comportamento dependente de localidade; as versões com o sufixo _l são idênticas à função correspondente sem o sufixo, exceto pelo fato de que elas usam a localidade informada como um parâmetro, em vez da localidade atual. Para obter mais informações, consulte Localidade.

Mapeamentos da rotina de texto genérico

Rotina TCHAR.H

_UNICODE & _MBCS não definido

_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 informações adicionais de compatibilidade, consulte Compatibilidade.

Equivalência do .NET Framework

System::String::Compare

Consulte também

Referência

Localidade

Manipulação da cadeia de caracteres (CRT)

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