Partager via


strcmp, wcscmp, _mbscmp

Comparez des chaînes.

Important

_mbscmp ne peut pas être utilisé dans les applications qui s'exécutent dans Windows Runtime.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /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 
);

Paramètres

  • string1, string2
    Chaîne terminée par le caractère NULL à comparer.

Valeur de retour

La valeur de retour pour chacune de ces fonctions indique la relation lexicographique d' string1 à string2.

Valeur

Relation de string1 à chaîne2

< 0

string1 est moins qu' string2

0

string1 identique à string2

> 0

string1 est supérieur à string2.

Sur une erreur, _mbscmp retourne _NLSCMPERROR, qui est définie dans STRING.H et MBSTRING.H.

Notes

La fonction d' strcmp compare string1 et string2 lexicographique et retourne une valeur qui indique la relation.wcscmp et _mbscmp sont, respectivement, à caractères larges et des versions à caractères multioctets d' strcmp._mbscmp identifie les séquences de caractères multioctets d'après la page de codes multioctets en cours et retourne _NLSCMPERROR sur une erreur.Pour plus d'informations, consultez Pages de codes.En outre, si string1 ou string2 est un pointeur null, _mbscmp appelle le gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, _mbscmp retourne _NLSCMPERROR et définit errno à EINVAL.strcmp et wcscmp ne valident pas leurs paramètres.Ces trois fonctions se comportent de sinon.

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tcscmp

strcmp

_mbscmp

wcscmp

Les fonctions d' strcmp diffèrent des fonctions d' strcoll du effectue des comparaisons d' strcmp ne sont pas affectées par les paramètres régionaux, alors que la manière de les comparaisons d' strcoll est déterminée par la catégorie d' LC_COLLATE des paramètres régionaux.Pour plus d'informations sur la catégorie d' LC_COLLATE, consultez setlocale, _wsetlocale.

Dans les paramètres régionaux « C », l'ordre des caractères dans le jeu de caractères (jeu de caractères ASCII) est le même que l'ordre des caractères lexicographiques.Toutefois, dans d'autres paramètres régionaux, l'ordre des caractères dans le jeu de caractères peut différer de la commande lexicographique.Par exemple, dans certains paramètres régionaux européens, le caractère « a » (valeur 0x61) précède le caractère « ä » (valeur 0xE4) dans le jeu de caractères, mais le caractère « ä » précède le caractère « a » lexicographique.

Dans les paramètres régionaux pour lesquels le jeu de caractères et l'ordre des caractères lexicographiques diffèrent, utilisez strcoll plutôt qu' strcmp pour la comparaison lexicographique des chaînes en fonction de la configuration de catégorie d' LC_COLLATE des paramètres régionaux.Pour effectuer une comparaison lexicographique des paramètres régionaux dans l'exemple ci-dessus, utilisez strcoll plutôt qu' strcmp.Sinon, vous pouvez utiliser strxfrm sur les chaînes d'origine, puis utilisez strcmp sur les chaînes résultantes.

_stricmp, _wcsicmp, et _mbsicmp comparer des chaînes en convertissant d'abord à leurs formes casse.Deux chaînes qui contiennent des caractères situés entre « Z » et « a » dans le tableau ASCII (" [ », '\', « ] », '^', '_', et '`') sont considérés différemment, selon le cas.Par exemple, les deux chaînes "ABCDE" et "ABCD^" comparent une méthode si la comparaison est en minuscules ("abcde" > "abcd^") et l'autre manière ("ABCDE" < "ABCD^") si la comparaison est en majuscules.

Configuration requise

Routine

En-tête requis

strcmp

<string.h>

wcscmp

<string.h> ou <wchar.h>

_mbscmp

<mbstring.h>

Pour des informations de compatibilité supplémentaires, consultez Compatibilité.

Bibliothèques

Toutes les versions d' Bibliothèques runtime C.

Exemple

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

Équivalent .NET Framework

System::String::CompareOrdinal

Voir aussi

Référence

Manipulation de chaînes (CRT)

memcmp, wmemcmp

_memicmp, _memicmp_l

fonctions de 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