Condividi tramite


_mbsnbcmp, _mbsnbcmp_l

Confronta il primo byte di n di due stringhe di caratteri multibyte.

Nota importanteImportante

Questa API non può essere utilizzato nelle applicazioni eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /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
);

Parametri

  • string1, string2
    Le stringhe da confrontare.

  • count
    Numero di byte da confrontare.

  • locale
    Le impostazioni locali da utilizzare.

Valore restituito

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

Valore restituito

Descrizione

< 0

la sottostringa distring1 è minore della sottostringa di string2.

0

la sottostringa distring1 è identica alla sottostringa di string2.

> 0

la sottostringa distring1 è maggiore della sottostringa di string2.

Su un errore, _mbsnbcmp restituisce _NLSCMPERROR, definito in String.h e in Mbstring.h.

Note

La funzione di _mbsnbcmp lessicografico confronta, al massimo, il primo byte di count in string1 e in string2 e restituisce un valore che indica la relazione tra le sottostringhe._mbsnbcmp è una versione con distinzione tra maiuscole e minuscole di _mbsnbicmp.A differenza di strcoll, _mbsnbcmp non è interessato dalle impostazioni locali._mbsnbcmp riconosce le sequenze di caratteri multibyte come tabella codicimultibyte corrente.

_mbsnbcmp assomiglia a _mbsncmp, ma _mbsncmp confronto di stringhe da caratteri anziché dai byte.

Il valore di output è interessato dall'impostazione di categoria di LC_CTYPE delle impostazioni locali; vedere setlocale per ulteriori informazioni.La versione della funzione senza il suffisso di _l utilizza le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali; la versione con il suffisso di _l è identica con la differenza che utilizza il parametro delle impostazioni locali passato.Per ulteriori informazioni, vedere Impostazioni locali.

Se string1 o string2 è un puntatore null, questa funzione richiamerà il gestore di parametro non valido, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, la funzione restituisce _NLSCMPERROR e errno è impostato su EINVAL.

Mapping di routine a Testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tcsncmp_l

strncmp

_mbsnbcml

wcsncmp

Requisiti

Routine

Intestazione obbligatoria

_mbsnbcmp

<mbstring.h>

_mbsnbcmp_l

<mbstring.h>

Per ulteriori informazioni di compatibilità, vedere 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

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.

Vedere anche

Riferimenti

Modifica delle stringhe (CRT)

_mbsnbcat, _mbsnbcat_l

_mbsnbicmp, _mbsnbicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

Impostazioni locali

Interpretazione delle sequenze di caratteri multibyte