_mbsnbcmp
, _mbsnbcmp_l
Compara os primeiros n bytes de duas cadeias de caracteres multibyte.
Importante
Esta API não pode ser usada 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 _mbsnbcmp(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsnbcmp_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);
Parâmetros
string1
, string2
As cadeias de caracteres a serem comparadas.
count
O número de bytes a serem comparados.
locale
A localidade a ser usada.
Valor retornado
O valor retornado indica a relação ordinal entre as subcadeias de caracteres de string1
e string2
.
Valor retornado | Descrição |
---|---|
< 0 | A subcadeia de caracteres string1 é menor do que a subcadeia de caracteres string2 . |
0 | A subcadeia de caracteres string1 é idêntica à subcadeia de caracteres string2 . |
> 0 | A subcadeia de caracteres string1 é maior que a subcadeia de caracteres string2 . |
Em um erro de validação de parâmetro, e retornar _NLSCMPERROR
, que é definido em <string.h> e <mbstring.h>._mbsnbcmp_l
_mbsnbcmp
Comentários
As funções _mbsnbcmp
comparam no máximo os primeiros count
bytes em string1
e string2
e retornam um valor que indica a relação entre as subcadeias de caracteres. _mbsnbcmp
é uma versão que diferencia maiúsculas e minúsculas de _mbsnbicmp
. Ao contrário _mbsnbcoll
do , _mbsnbcmp
não é afetado pela ordem de ordenação da localidade. _mbsnbcmp
reconhece sequências de caracteres multibyte de acordo com a página de código multibyte atual.
_mbsnbcmp
é semelhante a _mbsncmp
, exceto que _mbsncmp
compara cadeias de caracteres por caracteres em vez de por bytes.
O valor de saída é afetado pela configuração da categoria LC_CTYPE
da localidade, que especifica os bytes iniciais e os bytes à direita dos caracteres multibyte. Para obter mais informações, consulte setlocale
. A função _mbsnbcmp
usa a localidade atual para esse comportamento que depende da localidade. A função _mbsnbcmp_l
é idêntica, exceto que usa o parâmetro locale
, em vez disso. Para obter mais informações, consulte Localidade.
Se or string1
string2
for um ponteiro nulo, essas funções invocarão o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, as funções retornarão _NLSCMPERROR
e errno
serão definidas como 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 |
---|---|---|---|
_tcsncmp |
strncmp |
_mbsnbcmp |
wcsncmp |
_tcsncmp_l |
strncmp |
_mbsnbcml |
wcsncmp |
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_mbsnbcmp |
<mbstring.h> |
_mbsnbcmp_l |
<mbstring.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_mbsnbcmp.c
#include <mbstring.h>
#include <stdio.h>
char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown fox jumps over the lazy dog";
int main( void )
{
char tmp[20];
int result;
printf( "Compare strings:\n %s\n", string1 );
printf( " %s\n\n", string2 );
printf( "Function: _mbsnbcmp (first 10 characters only)\n" );
result = _mbsncmp( string1, string2 , 10 );
if( result > 0 )
_mbscpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
_mbscpy_s( tmp, sizeof(tmp), "less than" );
else
_mbscpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n\n", tmp );
printf( "Function: _mbsnicmp _mbsnicmp (first 10 characters only)\n" );
result = _mbsnicmp( string1, string2, 10 );
if( result > 0 )
_mbscpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
_mbscpy_s( tmp, sizeof(tmp), "less than" );
else
_mbscpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n\n", tmp );
}
Saída
Compare strings:
The quick brown dog jumps over the lazy fox
The QUICK brown fox jumps over the lazy dog
Function: _mbsnbcmp (first 10 characters only)
Result: String 1 is greater than string 2
Function: _mbsnicmp _mbsnicmp (first 10 characters only)
Result: String 1 is equal to string 2
Confira também
Manipulação de cadeia de caracteres
_mbsnbcat
, _mbsnbcat_l
_mbsnbicmp
, _mbsnbicmp_l
strncmp
, wcsncmp
, _mbsncmp
, _mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, _wcsnicmp_l
, , _mbsnicmp_l
Localidade
Interpretação de sequências de caracteres multibyte