Compartilhar via


_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l

Compara n bytes de duas cadeias de caractere de multibyte usando informações de página de código multibyte.

int _mbsnbcoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsnbcoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);
int _mbsnbicoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsnbicoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

Parâmetros

  • string1, string2
    Cadeias de caracteres para comparar.

  • count
    Número de bytes para comparar.

  • locale
    Localidade usar.

Valor de retorno

O valor retornado indica a relação de substrings de string1 e string2.

Valor de Retorno

Descrição

< 0

string1 substring menor que string2 subseqüência.

0

string1 idêntico a substring string2 subseqüência.

> 0

string1 subseqüência de caracteres maior que string2 subseqüência.

If string1 ou string2 é NULL ou count é maior que INT_MAX, o manipulador de parâmetro inválido é chamado, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções retornam _NLSCMPERROR e conjunto errno para EINVAL. Para usar _NLSCMPERROR, incluir String.h ou Mbstring.h.

Comentários

Cada uma dessas funções agrupa, no máximo, a primeira count bytes em string1 e string2 e retorna um valor que indica a relação entre as subseqüências resultantes de string1 e string2. Se o byte final na subseqüência de string1 ou string2 é um byte inicial, ela não está incluída na comparação; essas funções comparam apenas completos caracteres de substrings. _mbsnbicoll é uma versão não diferencia maiúsculas de minúsculas do _mbsnbcoll. Como _mbsnbcmp e _mbsnbicmp, _mbsnbcoll e _mbsnbicoll agrupar as duas seqüências de caractere multibyte na ordem lexicographic especificado pelo multibyte página de código atualmente em uso.

Para algumas páginas de código e conjuntos de caracteres correspondente, a ordem de caracteres no conjunto de caracteres pode diferir ordem lexicographic caractere.Na localidade "C", isso não for o caso: a ordem de caractere em ASCII a conjunto de caractere é o mesmo que a ordem lexicographic dos caractere.No entanto, em certas páginas de código Europeu, por exemplo, o caractere 'a' (valor 0x61) precede o caractere 'ç' (valor 0xE4) na conjunto de caracteres, mas o caractere 'ç' precede o caractere 'a' lexicograficamente.Para realizar uma lexicographic comparação de cadeias de caracteres pelos bytes em tal uma instância, use _mbsnbcoll em vez de _mbsnbcmp; Para verificar somente igualdade de seqüência de caracteres, use _mbsnbcmp.

Porque o coll funções de intercalação seqüências lexicograficamente para comparação, enquanto o cmp funções simplesmente testam a igualdade de seqüência de caracteres, o coll funções são muito mais lenta do que o correspondente cmp versões. Portanto, a coll funções devem ser usadas somente quando há uma diferença entre o caractere conjunto ordem e a ordem de caractere lexicographic na página de código corrente e essa diferença é de interesse para comparação.

O valor de saída é afetado pela configuração do LC_CTYPE categoria de configuração da localidade; consulte setlocale para obter mais informações.As versões dessas funções sem o _l sufixo use a localidade corrente para esse comportamento dependente de localidade; as versões com o _l sufixo são idênticas exceto que usarem o parâmetro de localidade passado em vez disso. Para obter mais informações, consulte Localidade.

Mapeamentos de rotina de texto genérica

Rotina tchar.h

_UNICODE e _MBCS não definido

_MBCS definido

_UNICODE definido

_tcsncoll

_strncoll

_mbsnbcoll

_wcsncoll

_tcsncoll_l

_strncoll, _wcsncoll, _mbsncoll, _strncoll_l, _wcsncoll_l, _mbsncoll_l

_mbsnbcoll_l

_wcsncoll_l

_tcsnicoll

_strnicoll

_mbsnbicoll

_wcsnicoll

_tcsnicoll_l

_strnicoll_l

_mbsnbicoll_l

_wcsnicoll_l

Requisitos

Rotina

Cabeçalho necessário

_mbsnbcoll

<mbstring.h>

_mbsnbcoll_l

<mbstring.h>

_mbsnbicoll

<mbstring.h>

_mbsnbicoll_l

<mbstring.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Consulte também

Referência

Manipulação de seqüência de caracteres (CRT)

_mbsnbcat, _mbsnbcat_l

_mbsnbcmp, _mbsnbcmp_l

_mbsnbicmp, _mbsnbicmp_l

Funções strcoll

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l