Compartilhar via


strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

Compare caracteres de duas cadeias de caracteres, usando a localidade atual ou uma localidade especificada.

Observação importanteImportante

_mbsncmp e _mbsncmp_l não podem ser usados 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 strncmp( const char *string1, const char *string2, size_t count ); int wcsncmp( const wchar_t *string1, const wchar_t *string2, size_t count ); int _mbsncmp( const unsigned char *string1, const unsigned char *string2, size_t count ); int _mbsncmp_l( const unsigned char *string1, const unsigned char *string2, size_t count, _locale_t locale );int _mbsnbcmp( const unsigned char *string1, const unsigned char *string2, size_t count );

Parâmetros

  • string1, string2
    Cadeias de caracteres para comparar.

  • count
    Número de caracteres para comparar.

  • locale
    A localidade usar.

Valor de retorno

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

Valor de Retorno

Descrição

< 0

subcadeia de caracteres destring1 menos da subcadeia de caracteres de string2

0

subcadeia de caracteres destring1 idêntica à subcadeia de caracteres de string2

> 0

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

Em um erro, _mbsncmpretorna _NLSCMPERROR, que é definido em STRING.H e em. MBSTRING.H.

Comentários

A função de strncmp compara lexicographically, no máximo, os primeiros caracteres de count em string1 e em string2 e retorna um valor que indica a relação entre as subcadeias de caracteres.strncmp é uma versão com maiúsculas de minúsculas _strnicmp.wcsncmp e _mbsncmp são versões maiúsculas de minúsculas de _wcsnicmp e de _mbsnicmp.

wcsncmp e _mbsncmp são versões de largo- caractere e o caractere multibyte- de strncmp.Os argumentos e o valor de retorno de wcsncmp são cadeias de caracteres de largo- caractere; essas de _mbsncmp são cadeias de caracteres de multibyte- caractere._mbsncmp reconhece sequências de multibyte- caractere de acordo com uma página de código de multibyte e retorna _NLSCMPERROR em um erro.

Além disso, _mbsncmp valida os seus parâmetros.Se string1 ou string2 são um ponteiro zero,o manipulador inválido do parâmetro é invocado, como descrito em Validação de parâmetro .Se a execução é permitida continuar, _mbsncmp retorna _NLSCMPERROR e defina errno a EINVAL.strncmp e wcsncmp não validam seus parâmetros.Essas três funções se comportam de forma idêntica.

O valor de saída é afetado pela configuração da categoria de LC_CTYPE de localidade; consulte setlocale para mais informações.As versões dessas funções sem o sufixo de _l usam a localidade atual para este comportamento de são dependentes; as versões com o sufixo de _l são idênticas exceto que usam o parâmetro de localidade passado em vez disso.Para obter mais informações, consulte Localidade.

Mapeamentos da rotina de Genérico- texto

Rotina de TCHAR.H

_UNICODE & _MBCS não definidos

_MBCS definido

_UNICODE definido

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tccmp

Mapeados para a função macro ou in-line

_mbsncmp

Mapeados para a função macro ou in-line

n/d

n/d

_mbsncmp_l

n/d

Requisitos

Rotina

Cabeçalho necessário

strncmp

<string.h>

wcsncmp

<string.h> ou <wchar.h>

_mbsncmp, _mbsncmp_l

<mbstring.h>

Para informações extras de compatibilidade Compatibilidade na introdução, consulte.

Exemplo

// crt_strncmp.c
#include <string.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      %s\n\n",
           string1, string2 );
   printf( "Function:   strncmp (first 10 characters only)\n" );
   result = strncmp( string1, string2 , 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n\n", tmp );
   printf( "Function:   strnicmp _strnicmp (first 10 characters only)\n" );
   result = _strnicmp( string1, string2, 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n", tmp );
}
  

Equivalência do .NET Framework

System::String::Compare

Consulte também

Referência

Manipulação de cadeia de caracteres (CRT)

Localidade

Interpretação de seqüências de caracteres Multibyte

_mbsnbcmp, _mbsnbcmp_l

_mbsnbicmp, _mbsnbicmp_l

strcmp, wcscmp, _mbscmp

Funções de strcoll

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

strspn, wcsspn, _mbsspn, _mbsspn_l