Partager via


strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

Comparez les caractères de deux chaînes, à l'aide de les paramètres régionaux ou des paramètres régionaux spécifiés.

Important

_mbsncmp et _mbsncmp_l ne peuvent pas être utilisés dans les applications qui s'exécutent dans les fenêtres d'exécution.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /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 
);

Paramètres

  • string1, string2
    Chaînes à comparer.

  • count
    Nombre de caractères à comparer.

  • locale
    Paramètres régionaux à utiliser.

Valeur de retour

La valeur de retour indique la relation des sous-chaînes d' string1 et d' string2 comme suit.

Valeur de retour

Description

< 0

sous-chaîne d'string1 moins que la sous-chaîne d' string2

0

sous-chaîne d'string1 identique à la sous-chaîne d' string2

> 0

sous-chaîne d'string1 supérieure à la sous-chaîne d' string2

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

Notes

La fonction d' strncmp compare lexicographique, au plus, les premiers caractères d' count dans string1 et string2 et retourne une valeur qui indique la relation entre les sous-chaînes.strncmp est une version non sensible à la casse d' _strnicmp.wcsncmp et _mbsncmp sont des versions respectent pas la casse d' _wcsnicmp et d' _mbsnicmp.

wcsncmp et _mbsncmp sont à caractères larges et des versions à caractères multioctets d' strncmp.Les arguments et la valeur de retour d' wcsncmp sont des chaînes à caractères larges ; ces d' _mbsncmp sont des chaînes de caractères multioctets._mbsncmp identifie les séquences de caractères multioctets en fonction d'une page de codes multioctets et retourne _NLSCMPERROR sur une erreur.

En outre, _mbsncmp valide ses paramètres.Si string1 ou string2 est un pointeur null,le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres .Si est autorisé à l'exécution pour continuer, _mbsncmp retourne _NLSCMPERROR et définit errno à EINVAL.strncmp et wcsncmp ne valident pas leurs paramètres.Ces trois fonctions se comportent de sinon.

La valeur de sortie est affectée par la configuration de la définition de catégorie d' LC_CTYPE des paramètres régionaux ; consultez l' setlocale pour plus d'informations.Les versions de ces fonctions sans suffixe d' _l utilisent les paramètres régionaux définis pour ce comportement dépendant des paramètres régionaux ; les versions avec le suffixe d' _l sont identiques sauf qu'elles utilisent le paramètre de paramètres régionaux passé à la place.Pour plus d'informations, consultez Paramètres régionaux.

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tccmp

Mappage à la macro ou la fonction inline

_mbsncmp

Mappage à la macro ou la fonction inline

N/A

N/A

_mbsncmp_l

N/A

Configuration requise

Routine

En-tête requis

strncmp

<string.h>

wcsncmp

<string.h> ou <wchar.h>

_mbsncmp, _mbsncmp_l

<mbstring.h>

Pour des informations de compatibilité supplémentaires, consultez l' Compatibilité dans l'introduction.

Exemple

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

Équivalent .NET Framework

System::String::Compare

Voir aussi

Référence

Manipulation de chaînes (CRT)

Paramètres régionaux

Interprétation des séquences de caractères multioctets

_mbsnbcmp, _mbsnbcmp_l

_mbsnbicmp, _mbsnbicmp_l

strcmp, wcscmp, _mbscmp

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