Partilhar via


_mbsnbcmp, _mbsnbcmp_l

Compara os primeiros bytes de n de duas cadeias de caracteres de multibyte- caractere.

Observação importanteImportante

Este API não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas 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
    Cadeias de caracteres para comparar.

  • count
    O número de bytes para comparar.

  • locale
    A localidade a ser usada.

Valor de retorno

O valor de retorno indica a relação entre as subcadeias de caracteres de string1 e string.

Valor de Retorno

Descrição

< 0

a subcadeia de caracteres destring1 for menor do que a subcadeia de caracteres de string2 .

0

a subcadeia de caracteres destring1 é idêntica a subcadeia de caracteres de string2 .

> 0

a subcadeia de caracteres destring1 é maior do que a subcadeia de caracteres de string2 .

Em um erro, _mbsnbcmp retorna _NLSCMPERROR, que é definido em String.h e em Mbstring.h.

Comentários

A função de _mbsnbcmp compara lexicographically, no máximo, os primeiros bytes de count em string1 e em string2 e retorna um valor que indica a relação entre as subcadeias de caracteres._mbsnbcmp é uma versão com maiúsculas de minúsculas _mbsnbicmp.Ao contrário de strcoll, _mbsnbcmp não é afetado pela localidade._mbsnbcmp reconhece sequências de multibyte- caractere de acordo com o multibyte atual página de código.

_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 de categoria de LC_CTYPE de localidade; consulte setlocale para mais informações.A versão dessa função que tem o sufixo de _l usa a localidade atual para este comportamento de são dependentes; a versão que tem o sufixo de _l é idêntica exceto que usam o parâmetro de localidade que é passado em vez disso.Para obter mais informações, consulte Localidade.

Se string1 ou string2 são um ponteiro zero, essa função chama o manipulador de parâmetro inválido, como descrito em Validação de parâmetro.Se a execução é permitida continuar, a função retorna _NLSCMPERROR e errno é definido como EINVAL.

Mapeamentos da rotina de Genérico- texto

Rotina de Tchar.h

_UNICODE e não definidos _MBCS

_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 mais informações, consulte Compatibilidadede 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 padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Manipulação de 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 seqüências de caracteres Multibyte