Compartilhar via


_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

strncmp

_mbsnbcmp

wcsncmp

_tcsncmp_l

strncmp

_mbsnbcml

wcsncmp

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)

_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