strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
Compare caracteres de duas cadeias de caracteres, usando a localidade atual ou uma localidade especificada.
Importante |
---|
_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
Consulte também
Referência
Manipulação de cadeia de caracteres (CRT)
Interpretação de seqüências de caracteres Multibyte
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l