Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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