Condividi tramite


strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

Confrontare i caratteri di due stringhe, utilizzando le impostazioni locali correnti o delle impostazioni locali.

Nota importanteImportante

_mbsncmp e _mbsncmp_l non possono essere utilizzati nelle applicazioni eseguite nelle finestre runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /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 
);

Parametri

  • string1, string2
    Stringhe da confrontare.

  • count
    Numero di caratteri da confrontare.

  • locale
    Impostazioni locali da utilizzare.

Valore restituito

Il valore restituito indica la relazione delle sottostringhe di string1 e di string2 come segue.

Valore restituito

Descrizione

< 0

sottostringa distring1 minore di sottostringa di string2

0

sottostringa distring1 identica alla sottostringa di string2

> 0

sottostringa distring1 maggiore della sottostringa di string2

Su un errore, _mbsncmprestituisce _NLSCMPERROR, definito in STRING.H e in MBSTRING.H.

Note

La funzione di strncmp lessicografico confronta, al massimo, i primi caratteri di count in string1 e in string2 e restituisce un valore che indica la relazione tra le sottostringhe.strncmp è una versione con distinzione tra maiuscole e minuscole di _strnicmp.wcsncmp e _mbsncmp sono versioni con distinzione tra maiuscole e minuscole di _wcsnicmp e di _mbsnicmp.

wcsncmp e _mbsncmp sono versioni a caratteri di tipo "wide" e di caratteri multibyte di strncmp.Gli argomenti e il valore restituito di wcsncmp sono stringhe di caratteri di tipo "wide", quelli di _mbsncmp sono stringhe di caratteri multibyte._mbsncmp riconosce le sequenze di caratteri multibyte come una tabella codici multibyte e restituisce _NLSCMPERROR su un errore.

Inoltre, _mbsncmp convalida dei parametri.Se string1 o string2 è un puntatore null,il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, _mbsncmp restituisce _NLSCMPERROR e imposta errno a EINVAL.strncmp e wcsncmp non convalidano i relativi parametri.Altrimenti queste tre funzioni si comportano in modo identico.

Il valore di output è interessato dall'impostazione dell'impostazione di categoria LC_CTYPE delle impostazioni locali; vedere setlocale per ulteriori informazioni.Le versioni di queste funzioni senza il suffisso _l utilizzano le impostazioni locali correnti per il comportamento dipendente dalle impostazioni locali; le versioni con il suffisso _l sono identiche, ad eccezione del fatto che utilizzano il parametro delle impostazioni locali che viene passato.Per ulteriori informazioni, vedere Impostazioni locali.

Mapping di routine a Testo generico

TCHAR.H routine

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tccmp

Mapping della macro o della funzione inline

_mbsncmp

Mapping della macro o della funzione inline

n/d

n/d

_mbsncmp_l

n/d

Requisiti

Routine

Intestazione obbligatoria

strncmp

<string.h>

wcsncmp

<string.h> o <wchar.h>

_mbsncmp, _mbsncmp_l

<mbstring.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

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 );
}
  

Equivalente .NET Framework

System::String::Compare

Vedere anche

Riferimenti

Modifica delle stringhe (CRT)

Impostazioni locali

Interpretazione delle sequenze di caratteri multibyte

_mbsnbcmp, _mbsnbcmp_l

_mbsnbicmp, _mbsnbicmp_l

strcmp, wcscmp, _mbscmp

funzioni di 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