_mbsnbcmp
, _mbsnbcmp_l
Porovná první n bajty dvou vícebajtových řetězců znaků.
Důležité
Toto rozhraní API nelze použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.
Syntaxe
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
Řetězce, které chcete porovnat.
count
Počet bajtů, které chcete porovnat.
locale
Národní prostředí, které se má použít
Vrácená hodnota
Návratová hodnota označuje pořadový vztah mezi podřetězí string1
a string2
.
Vrácená hodnota | Popis |
---|---|
< 0 | string1 podřetěžce je menší než string2 podřetěžek. |
0 | string1 podřetětědce je shodný s string2 podřetědcem. |
> 0 | string1 podřetětěr je větší než string2 podřetěžek. |
Při chybě _mbsnbcmp
ověření parametru a _mbsnbcmp_l
návrat _NLSCMPERROR
, který je definován v <string.h> a <mbstring.h>.
Poznámky
Funkce _mbsnbcmp
porovnávají nejvýše první count
bajty a string1
string2
vracejí hodnotu, která označuje vztah mezi podřetězí. _mbsnbcmp
je verze rozlišující malá a velká písmena _mbsnbicmp
. Na rozdíl od _mbsnbcoll
pořadí _mbsnbcmp
kolace národního prostředí není ovlivněno pořadím kolace. _mbsnbcmp
rozpozná vícebajtové sekvence znaků podle aktuální vícebajtové znakové stránky.
_mbsnbcmp
_mbsncmp
připomíná , s výjimkou, že _mbsncmp
porovnává řetězce podle znaků místo bajtů.
Výstupní hodnota je ovlivněna LC_CTYPE
nastavením kategorie národního prostředí, které určuje počáteční bajty a koncové bajty vícebajtových znaků. Další informace najdete na webu setlocale
. Funkce _mbsnbcmp
používá aktuální národní prostředí pro toto chování závislé na národním prostředí. Funkce _mbsnbcmp_l
je shodná s tím rozdílem, že místo toho používá locale
parametr. Další informace naleznete v tématu Národní prostředí.
Pokud je nebo string1
string2
je ukazatel null, tyto funkce vyvolat neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je povoleno pokračovat provádění, funkce vrátí _NLSCMPERROR
a errno
je nastavena na EINVAL
.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Mapování rutin obecného textu
Rutina Tchar.h | _UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_tcsncmp |
strncmp |
_mbsnbcmp |
wcsncmp |
_tcsncmp_l |
strncmp |
_mbsnbcml |
wcsncmp |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_mbsnbcmp |
<mbstring.h> |
_mbsnbcmp_l |
<mbstring.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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 );
}
Výstup
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
Viz také
Manipulace s řetězci
_mbsnbcat
, _mbsnbcat_l
_mbsnbicmp
, _mbsnbicmp_l
strncmp
, wcsncmp
, , _mbsncmp
_mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
_mbsnicmp_l
Národní prostředí
Interpretace vícebajtových sekvencí znaků