_mbsnbcmp, _mbsnbcmp_l
Compara o primeiro n bytes de duas cadeias de caracteres multibyte.
Importante
Essa API não pode ser usada em aplicativos executados no Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT sem suporte com /ZW.
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 ser comparado.count
O número de bytes a ser comparado.locale
A localidade a ser usada.
Valor de retorno
O valor de retorno indica a ordinal relação entre as subcadeias de caracteres de string1 e string.
Valor de retorno |
Descrição |
---|---|
< 0 |
string1subcadeia de caracteres é menor que string2 subcadeia de caracteres. |
0 |
string1subcadeia de caracteres é idêntica à string2 subcadeia de caracteres. |
> 0 |
string1subcadeia de caracteres é maior que string2 subcadeia de caracteres. |
Em um erro de validação de parâmetro, _mbsnbcmp e _mbsnbcmp_l retornar _NLSCMPERROR, que é definido em < String. h > e < mbstring.h >.
Comentários
O _mbsnbcmp no máximo comparam o primeiro count bytes string1 e string2 e retornar um valor que indica a relação entre as subcadeias de caracteres. _mbsnbcmpé uma versão de maiúsculas e minúsculas do _mbsnbicmp. Ao contrário de _mbsnbcoll, _mbsnbcmp não é afetada pela ordem de agrupamento da localidade. _mbsnbcmpreconhece sequências de caracteres multibyte de acordo com a atual multibyte página de código.
_mbsnbcmpé semelhante a _mbsncmp, exceto que _mbsncmp compara cadeias de caracteres em vez de bytes.
O valor de saída é afetado pelo LC_CTYPE categoria de configuração de localidade, que especifica o líder de bytes e bytes de caracteres multibyte à direita. Para obter mais informações, consulte setlocale. O _mbsnbcmp função usa a localidade atual desse comportamento dependente de localidade. O _mbsnbcmp_l função é idêntica, exceto que ele usa o locale parâmetro em vez disso. Para obter mais informações, consulte Localidade.
Se qualquer um dos string1 ou string2 é um ponteiro nulo, essas funções para invocar o manipulador de parâmetro inválido, conforme descrito em Validação do parâmetro. Se a execução puder continuar, as funções retornam _NLSCMPERROR e errno é definido como EINVAL.
Mapeamentos da rotina de texto genérico
Rotina Tchar.h |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsncmp |
_mbsnbcmp |
||
_tcsncmp_l |
_mbsnbcml |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_mbsnbcmp |
<mbstring.h> |
_mbsnbcmp_l |
<mbstring.h> |
Para obter mais informações de 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
Equivalência do .NET Framework
Não aplicável. Para chamar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.
Consulte também
Referência
Manipulação da cadeia de caracteres (CRT)
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l