strcmp, wcscmp, _mbscmp

Confrontare le stringhe.

Nota importanteImportante

_mbscmp non può essere utilizzato nelle applicazioni eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.

int strcmp(
   const char *string1,
   const char *string2 
);
int wcscmp(
   const wchar_t *string1,
   const wchar_t *string2 
);
int _mbscmp(
   const unsigned char *string1,
   const unsigned char *string2 
);

Parametri

  • string1, string2
    Stringhe che terminano con null da confrontare.

Valore restituito

Il valore restituito per ognuna di esse indica la relazione lessicografica di string1 a string2.

Valore

Relazione di stringa1 e stringa2

< 0

string1 è minore di string2

0

string1 è identico a string2

> 0

string1 è maggiore di string2.

In caso di errore, _mbscmp restituisce _NLSCMPERROR, definito in STRING.H e in MBSTRING.H.

Note

La funzione di strcmp confronta string1 e string2 lessicografico e restituisce un valore che indica la relazione.wcscmp e _mbscmp sono, rispettivamente, versione a caratteri estesi e di caratteri multibyte di strcmp._mbscmp riconosce le sequenze di caratteri multibyte in base alla tabella del codice multibyte corrente e restituisce _NLSCMPERROR in caso di errore.Per ulteriori informazioni, vedere Tabelle codici.Inoltre, se string1 o string2 è un puntatore null, _mbscmp richiamato il gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, _mbscmp restituisce _NLSCMPERROR e imposta errno a EINVAL.strcmp e wcscmp non convalidano i relativi parametri.Altrimenti queste tre funzioni si comportano in modo identico.

Mapping di routine a Testo generico

TCHAR.H routine

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tcscmp

strcmp

_mbscmp

wcscmp

Le funzioni di strcmp differiscono dalle funzioni di strcoll in quanto i confronti di strcmp non sono interessati dalle impostazioni locali, mentre la modalità di confronto di strcoll è determinato dalla categoria di LC_COLLATE delle impostazioni locali correnti.Per ulteriori informazioni sulla categoria di LC_COLLATE, vedere setlocale, _wsetlocale.

Nelle impostazioni locali "c", l'ordine di caratteri nel set di caratteri (set di caratteri ASCII) è identico all'ordine dei caratteri lessicografico.Tuttavia, in altre impostazioni locali, l'ordine di caratteri nel set di caratteri può differire dall'ordine lessicografico.Ad esempio, in alcune impostazioni locali europee, il carattere "a" (valore 0x61) precede il carattere "ä" (valore 0xE4) nel set di caratteri, ma il carattere "ä" precede il carattere "a" lessicografico.

Nelle impostazioni locali per il quale il set di caratteri e l'ordine dei caratteri lessicografico differiscono, utilizzare strcoll anziché strcmp per il confronto di stringhe lessicografico secondo l'impostazione di categoria di LC_COLLATE delle impostazioni locali correnti.Per eseguire un confronto lessicografico delle impostazioni locali nell'esempio precedente, utilizzare strcoll anziché strcmp.In alternativa, è possibile utilizzare strxfrm sulle stringhe originali, quindi utilizzare strcmp sulle stringhe di risultato.

_stricmp, _wcsicmpe _mbsicmp confrontare le stringhe prima convertendole ai form in lettere minuscole.Due stringhe che contengono caratteri presenti tra "Z" e "a" nella tabella ASCII (" [", '\', "]", '^', '_'e '`') confronto in modo diverso, a seconda del caso.Ad esempio, le due stringhe "ABCDE" e "ABCD^" confrontare una modalità se il confronto è minuscolo ("abcde" > "abcd^") e viceversa ("ABCDE" < "ABCD^") se il confronto è maiuscolo.

Requisiti

Routine

Intestazione obbligatoria

strcmp

<string.h>

wcscmp

<string.h> o <wchar.h>

_mbscmp

<mbstring.h>

Per informazioni aggiuntive di compatibilità, vedere Compatibilità.

Librerie

Tutte le versioni delle Librerie di runtime C.

Esempio

// crt_strcmp.c

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";

int main( void )
{
   char tmp[20];
   int result;

   // Case sensitive
   printf( "Compare strings:\n   %s\n   %s\n\n", string1, string2 );
   result = strcmp( string1, string2 );
   if( result > 0 )
      strcpy_s( tmp, _countof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, _countof (tmp), "less than" );
   else
      strcpy_s( tmp, _countof (tmp), "equal to" );
   printf( "   strcmp:   String 1 is %s string 2\n", tmp );

   // Case insensitive (could use equivalent _stricmp)
   result = _stricmp( string1, string2 );
   if( result > 0 )
      strcpy_s( tmp, _countof (tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, _countof (tmp), "less than" );
   else
      strcpy_s( tmp, _countof (tmp), "equal to" );
   printf( "   _stricmp:  String 1 is %s string 2\n", tmp );
}
  

Equivalente .NET Framework

System::String::CompareOrdinal

Vedere anche

Riferimenti

Modifica delle stringhe (CRT)

memcmp, wmemcmp

_memicmp, _memicmp_l

funzioni di strcoll

_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l