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
Voir aussi
Référence
Interprétation des séquences de caractères multioctets
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l