Partilhar via


_stricoll, _wcsicoll, _mbsicoll, _stricoll_l, _wcsicoll_l, , _mbsicoll_l

Compara cadeias de caracteres usando informações específicas de localidade.

Importante

_mbsicoll e _mbsicoll_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 _stricoll(
   const char *string1,
   const char *string2
);
int _wcsicoll(
   const wchar_t *string1,
   const wchar_t *string2
);
int _mbsicoll(
   const unsigned char *string1,
   const unsigned char *string2
);
int _stricoll_l(
   const char *string1,
   const char *string2,
   _locale_t locale
);
int _wcsicoll_l(
   const wchar_t *string1,
   const wchar_t *string2,
   _locale_t locale
);
int _mbsicoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   _locale_t locale
);

Parâmetros

string1, string2
Cadeias de caracteres com terminação nula.

locale
A localidade a ser usada.

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
_NLSCMPERROR Ocorreu um erro.

Cada uma dessas funções retorna _NLSCMPERROR. Para usar _NLSCMPERRORo , inclua <string.h> ou <mbstring.h>. _wcsicoll pode falhar se string1 ou string2 contém códigos de caractere largo fora do domínio da sequência de agrupamento. Quando um erro ocorre, _wcsicoll pode definir errno para EINVAL. Para verificar se há um erro em uma chamada para _wcsicoll, defina errno como 0 e, em seguida, verifique errno depois de chamar _wcsicoll.

Comentários

Cada uma dessas funções executa uma comparação que não diferencia 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.

_stricmp difere de _stricoll quando a comparação de _stricmp é afetada por LC_CTYPE, enquanto a comparação de _stricoll está de acordo com as categorias LC_CTYPE e LC_COLLATE da localidade. Para obter mais informações sobre a LC_COLLATE categoria, consulte setlocale Categorias de localidade. As versões dessas funções sem o sufixo _l usam a localidade atual; as versões com o sufixo _l são idênticas, exceto por usarem a localidade passada. Para obter mais informações, consulte Localidade.

Todas essas funções validam seus parâmetros. Se ou string1 string2 forem NULL ponteiros, 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.

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
_tcsicoll _stricoll _mbsicoll _wcsicoll

Requisitos

Rotina Cabeçalho necessário
_stricoll, _stricoll_l <string.h>
_wcsicoll, _wcsicoll_l <wchar.h>, <string.h>
_mbsicoll, _mbsicoll_l <mbstring.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