Partager via


_mbsnbcmp, _mbsnbcmp_l

Compare les premiers octets d' n de deux chaînes de caractères multioctets.

Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans Windows Runtime.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /ZW.

int _mbsnbcmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsnbcmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

Paramètres

  • string1, string2
    Les chaînes à comparer.

  • count
    Le nombre d'octets à comparer.

  • locale
    Les paramètres régionaux à utiliser.

Valeur de retour

La valeur de retour indique la relation entre les sous-chaînes d' string1 et string.

Valeur de retour

Description

< 0

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

0

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

> 0

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

Sur une erreur, _mbsnbcmp retourne _NLSCMPERROR, qui est définie dans String.h et Mbstring.h.

Notes

La fonction d' _mbsnbcmp compare lexicographique, au plus, les premiers octets d' count dans string1 et string2 et retourne une valeur qui indique la relation entre les sous-chaînes._mbsnbcmp est une version non sensible à la casse d' _mbsnbicmp.Contrairement à strcoll, _mbsnbcmp n'est pas affecté par les paramètres régionaux._mbsnbcmp identifie les séquences de caractères multioctets en fonction de page de codesmultioctets actuel.

_mbsnbcmp ressemble à _mbsncmp, sauf qu' _mbsncmp compare des chaînes par des caractères plutôt que par les octets.

La valeur de sortie est affectée par la définition de catégorie d' LC_CTYPE des paramètres régionaux ; consultez l' setlocale pour plus d'informations.La version de cette fonction qui n'a pas le suffixe d' _l utilise les paramètres régionaux définis pour ce comportement dépendant des paramètres régionaux ; la version qui a le suffixe d' _l est identique à la différence qu'elle utilise le paramètre de paramètres régionaux qui est passé à la place.Pour plus d'informations, consultez Paramètres régionaux.

Si string1 ou string2 est un pointeur null, cette fonction appelle le gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, la fonction retourne _NLSCMPERROR et errno a la valeur EINVAL.

Mappages de routines de texte générique

Routine de Tchar.h

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tcsncmp_l

strncmp

_mbsnbcml

wcsncmp

Configuration requise

Routine

En-tête requis

_mbsnbcmp

<mbstring.h>

_mbsnbcmp_l

<mbstring.h>

Pour plus d'informations de compatibilité, consultez Compatibilité.

Exemple

// crt_mbsnbcmp.c
#include <mbstring.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", string1 );
   printf( "          %s\n\n", string2 );
   printf( "Function: _mbsnbcmp (first 10 characters only)\n" );
   result = _mbsncmp( string1, string2 , 10 );
   if( result > 0 )
      _mbscpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      _mbscpy_s( tmp, sizeof(tmp), "less than" );
   else
      _mbscpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:   String 1 is %s string 2\n\n", tmp );
   printf( "Function: _mbsnicmp _mbsnicmp (first 10 characters only)\n" );
   result = _mbsnicmp( string1, string2, 10 );
   if( result > 0 )
      _mbscpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      _mbscpy_s( tmp, sizeof(tmp), "less than" );
   else
      _mbscpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:   String 1 is %s string 2\n\n", tmp );
}

Sortie

Compare strings:
          The quick brown dog jumps over the lazy fox
          The QUICK brown fox jumps over the lazy dog

Function: _mbsnbcmp (first 10 characters only)
Result:   String 1 is greater than string 2

Function: _mbsnicmp _mbsnicmp (first 10 characters only)
Result:   String 1 is equal to string 2

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de code non managé.

Voir aussi

Référence

Manipulation de chaînes (CRT)

_mbsnbcat, _mbsnbcat_l

_mbsnbicmp, _mbsnbicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

Paramètres régionaux

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