_mbsnbcmp
, _mbsnbcmp_l
Porównuje pierwsze n bajtów dwóch ciągów wielobajtowych znaków.
Ważne
Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.
Składnia
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
);
Parametry
string1
, string2
Ciągi do porównania.
count
Liczba bajtów do porównania.
locale
Ustawienia regionalne do użycia.
Wartość zwracana
Wartość zwracana wskazuje relację porządkową między podciągami string1
i string2
.
Wartość zwracana | opis |
---|---|
< 0 | string1 podciąg jest mniejszy niż string2 podciąg. |
0 | string1 podciąg jest identyczny z string2 podciągem. |
> 0 | string1 podciąg jest większy niż string2 podciąg. |
W przypadku błędu sprawdzania poprawności parametru _mbsnbcmp
i _mbsnbcmp_l
zwróć wartość _NLSCMPERROR
, która jest zdefiniowana w parametrach <string.h> i <mbstring.h>.
Uwagi
Funkcje _mbsnbcmp
porównują co najwyżej pierwsze count
bajty i string1
string2
zwracają wartość, która wskazuje relację między podciągami. _mbsnbcmp
jest wersją z uwzględnieniem wielkości liter ._mbsnbicmp
W przeciwieństwie do _mbsnbcoll
elementu _mbsnbcmp
nie ma to wpływu na kolejność sortowania ustawień regionalnych. _mbsnbcmp
rozpoznaje sekwencje wielobajtowe według bieżącej strony kodu wielobajtowego.
_mbsnbcmp
_mbsncmp
przypomina , z tą różnicą, że _mbsncmp
porównuje ciągi według znaków, a nie bajtów.
Wartość wyjściowa ma wpływ na LC_CTYPE
ustawienie kategorii ustawień regionalnych, które określa bajty ołowiu i końcowe bajty znaków wielobajtowych. Aby uzyskać więcej informacji, zobacz setlocale
. Funkcja _mbsnbcmp
używa bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych. Funkcja jest identyczna _mbsnbcmp_l
, z tą różnicą, że używa parametru locale
. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
Jeśli element string1
lub string2
jest wskaźnikiem o wartości null, te funkcje wywołują nieprawidłową procedurę obsługi parametrów zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, funkcje zwracają _NLSCMPERROR
wartość i errno
jest ustawiona na EINVAL
wartość .
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
Procedura tchar.h | _UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_tcsncmp |
strncmp |
_mbsnbcmp |
wcsncmp |
_tcsncmp_l |
strncmp |
_mbsnbcml |
wcsncmp |
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_mbsnbcmp |
<mbstring.h> |
_mbsnbcmp_l |
<mbstring.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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 );
}
Wynik
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
Zobacz też
Manipulowanie ciągami
_mbsnbcat
, _mbsnbcat_l
_mbsnbicmp
, _mbsnbicmp_l
strncmp
, , wcsncmp
, , _mbsncmp
_mbsncmp_l
_strnicmp
, , _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
_mbsnicmp_l
ustawienia regionalne
Interpretacja sekwencji znaków wielobajtowych