_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 _NLSCMPERROR
e 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