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

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 _mbsnbcolldo , _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 _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, 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