_mbsnbcmp, _mbsnbcmp_l
Confronta i primi n byte di due stringhe di caratteri multibyte.
Importante
Questa API non può essere usata nelle applicazioni eseguite in Windows Runtime.Per altre informazioni, vedere l'argomento relativo alle 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
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 string.
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 di convalida del parametro, _mbsnbcmp e _mbsnbcmp_l restituiscono _NLSCMPERROR, definito in <string.h> e <mbstring.h>.
Note
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. Diversamente da _mbsnbcoll, _mbsnbcmp non viene influenzata dall'ordinamento 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 altre 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 Impostazioni locali.
Se string1 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 restituiranno _NLSCMPERROR e errno viene impostato su EINVAL.
Mapping di routine di testo generico
Routine Tchar.h |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsncmp |
_mbsnbcmp |
||
_tcsncmp_l |
_mbsnbcml |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_mbsnbcmp |
<mbstring.h> |
_mbsnbcmp_l |
<mbstring.h> |
Per altre informazioni sulla 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 C standard, usare PInvoke. Per altre informazioni, vedere Esempi di platform invoke.
Vedere anche
Riferimenti
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l