Condividi tramite


_mbsnbcmp, _mbsnbcmp_l

Confronta i primi n byte di due stringhe di caratteri multibyte.

Importante

Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).

Sintassi

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

Parametri

string1, string2
Stringhe da confrontare.

count
Numero di byte da confrontare.

locale
Impostazioni locali da usare.

Valore restituito

Il valore restituito indica la relazione ordinale tra le sottostringhe di string1 e string2.

Valore restituito Descrizione
< 0 La sottostringa di string1 è minore della sottostringa di string2.
0 La sottostringa di string1 è identica alla sottostringa di string2.
> 0 La sottostringa di string1 è maggiore della sottostringa di string2.

In caso di errore _mbsnbcmp di convalida dei parametri e _mbsnbcmp_l restituisce _NLSCMPERROR, definito in <string.h> e <mbstring.h>.

Osservazioni:

Le funzioni _mbsnbcmp confrontano al massimo i primi count byte in string1 e string2 e restituiscono un valore che indica la relazione tra le sottostringhe. _mbsnbcmp è una versione di _mbsnbicmp che effettua la distinzione tra maiuscole e minuscole. A differenza di _mbsnbcoll, _mbsnbcmp non è interessato dall'ordine delle regole di confronto delle impostazioni locali. _mbsnbcmp riconosce le sequenze di caratteri multibyte in base alla tabella codici multibyte corrente.

_mbsnbcmp è simile a _mbsncmp, ad eccezione del fatto che _mbsncmp confronta le stringhe per caratteri anziché per byte.

Il valore di output viene influenzato dall'impostazione della categoria LC_CTYPE delle impostazioni locali, che specifica i byte iniziali e finali dei caratteri multibyte. Per ulteriori informazioni, vedere setlocale. La funzione _mbsnbcmp usa le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali. La funzione _mbsnbcmp_l è identica ad eccezione del fatto che usa il parametro locale. Per altre informazioni, vedere Locale.

string1 Se o string2 è un puntatore Null, queste funzioni richiamano il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, le funzioni restituiscono _NLSCMPERRORe errno sono impostate su EINVAL.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Mapping di routine di testo generico

Routine Tchar.h _UNICODE e _MBCS non definito _MBCS definito _UNICODE definito
_tcsncmp strncmp _mbsnbcmp wcsncmp
_tcsncmp_l strncmp _mbsnbcml wcsncmp

Requisiti

Ciclo Intestazione obbligatoria
_mbsnbcmp <mbstring.h>
_mbsnbcmp_l <mbstring.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

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

Output

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

Vedi anche

Manipolazione delle stringhe
_mbsnbcat, _mbsnbcat_l
_mbsnbicmp, _mbsnbicmp_l
strncmp, wcsncmp, _mbsncmp_mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l_mbsnicmp_l
impostazioni locali
Interpretazione di sequenze di caratteri multibyte