_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 |
_mbsnbcoll |
||
_tcsncoll_l |
_strncoll, _wcsncoll, _mbsncoll, _strncoll_l, _wcsncoll_l, _mbsncoll_l |
_mbsnbcoll_l |
|
_tcsnicoll |
_mbsnbicoll |
||
_tcsnicoll_l |
_mbsnbicoll_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)
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l