strncmp
, wcsncmp
, _mbsncmp
_mbsncmp_l
Esegue il confronto del numero specificato di caratteri delle due stringhe.
Importante
_mbsncmp
e _mbsncmp_l
non possono essere usati nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).
Sintassi
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
);
Parametri
string1
, string2
Stringhe da confrontare.
count
Numero di caratteri da confrontare.
locale
Impostazioni locali da usare.
Valore restituito
Il valore restituito indica la relazione delle sottostringhe di string1
e string2
come descritto di seguito.
Valore restituito | Descrizione |
---|---|
< 0 | La sottostringa di string1 è minore della sottostringa di string2 |
0 | La sottostringa di string1 è identica alla sottostringa di string2 |
> 0 | La sottostringa di string1 è maggiore della sottostringa di string2 |
In caso di errore _mbsncmp
di convalida dei parametri e _mbsncmp_l
restituisce _NLSCMPERROR
, definito in <string.h>
e <mbstring.h>
.
Osservazioni:
La funzione strncmp
esegue un confronto ordinale al massimo dei primi count
caratteri in string1
e string2
, quindi restituisce un valore che indica la relazione tra le sottostringhe. strncmp
è una versione di _strnicmp
che effettua la distinzione tra maiuscole e minuscole. wcsncmp
e _mbsncmp
sono versioni con distinzione tra maiuscole e minuscole di _wcsnicmp
e _mbsnicmp
.
wcsncmp
e _mbsncmp
sono versioni con caratteri wide e caratteri multibyte di strncmp
. Gli argomenti di sono stringhe di wcsncmp
caratteri wide. Gli argomenti di sono stringhe di _mbsncmp
caratteri multibyte. _mbsncmp
riconosce le sequenze di caratteri multibyte in base alla tabella codici multibyte corrente e restituisce _NLSCMPERROR
in caso di errore.
Inoltre, _mbsncmp
e _mbsncmp_l
convalidano i parametri. Se string1
o string2
è un puntatore Null e count
non è uguale a 0, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, _mbsncmp
e _mbsncmp_l
restituiscono _NLSCMPERROR
e impostano errno
su EINVAL
. strncmp
e wcsncmp
non convalidare i relativi parametri. A parte ciò, queste funzioni si comportano in modo identico.
Il comportamento di confronto di _mbsncmp
e _mbsncmp_l
è interessato dall'impostazione della categoria LC_CTYPE
delle impostazioni locali. Controlla il rilevamento dei byte iniziali e finali dei caratteri multibyte. Per ulteriori informazioni, vedere setlocale
. La funzione _mbsncmp
usa le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali. La funzione _mbsncmp_l
è identica ad eccezione del fatto che usa il parametro locale
. Per altre informazioni, vedere Locale. Se le impostazioni locali sono a un byte, il comportamento di queste funzioni è identico a strncmp
.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
TCHAR.H routine |
_UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsnccmp |
strncmp |
_mbsncmp |
wcsncmp |
_tcsncmp |
strncmp |
_mbsnbcmp |
wcsncmp |
_tccmp |
Mapping a una macro o a una funzione inline | _mbsncmp |
Mapping a una macro o a una funzione inline |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
strncmp |
<string.h> |
wcsncmp |
<string.h> oppure <wchar.h> |
_mbsncmp , _mbsncmp_l |
<mbstring.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// 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 );
}
Compare strings:
The quick brown dog jumps over the lazy fox
The QUICK brown fox jumps over the lazy dog
Function: strncmp (first 10 characters only)
Result: String 1 is greater than string 2
Function: strnicmp _strnicmp (first 10 characters only)
Result: String 1 is equal to string 2
Vedi anche
Manipolazione delle stringhe
impostazioni locali
Interpretazione di sequenze di caratteri multibyte
_mbsnbcmp
, _mbsnbcmp_l
_mbsnbicmp
, _mbsnbicmp_l
strcmp
, wcscmp
, _mbscmp
Funzioni 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