Share via


_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.

Retornar valor

O valor retornado indica a relação ordinal entre as subcadeias de caracteres de string1 e string2.

Retornar valor 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 return , _mbsnbcmp que é definido em <string.h e _mbsnbcmp_l<mbstring.h>>._NLSCMPERROR

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 _mbsnbcolldo , _mbsnbcmp não é afetado pela ordem de agrupamento 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 um ou string2 for um string1 ponteiro nulo, essas funções invocarão o manipulador de parâmetros inválido, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, as funções retornarão _NLSCMPERRORe errno serão definidas como EINVAL.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na 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