_mbsnbcmp _mbsnbcmp_l
Porovná první n bajtů dva vícebajtové znakové řetězce.
![]() |
---|
Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /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
);
Parametry
string1, string2
Řetězce, které chcete porovnat.count
Počet bajtů k porovnání.locale
Národní prostředí pro použití.
Vrácená hodnota
Vrácená hodnota označuje vztah mezi podřetězce string1 a string.
Vrácená hodnota |
Description |
---|---|
< 0 |
string1podřetězec je menší než string2 podřetězec. |
0 |
string1podřetězec je totožný s string2 podřetězec. |
> 0 |
string1podřetězec je větší než string2 podřetězec. |
Na chybu _mbsnbcmp vrátí _NLSCMPERROR, která je definována v String.h a Mbstring.h.
Poznámky
_mbsnbcmp Funkce lexicographically porovná, nanejvýš první count bajtů v string1 a string2 a vrátí hodnotu, která označuje vztah mezi podřetězce._mbsnbcmpje velká a malá písmena verze _mbsnbicmp.Na rozdíl od strcoll, _mbsnbcmp neovlivní národní prostředí._mbsnbcmprozpozná vícebajtové znakové sekvence podle aktuální vícebajtové znaková stránka.
_mbsnbcmpse podobá _mbsncmp, s tím rozdílem, že _mbsncmp porovná řetězce znaků, nikoli bajtů.
Výstupní hodnota je ovlivněna LC_CTYPE kategorie nastavení národního prostředí; Viz setlocale pro další informace.Verze této funkce, která nemá _l příponu používá aktuální národní prostředí pro toto chování závislé na národním prostředí; verze, která má _l přípona je totožný s tím rozdílem, že používá parametr locale, který je místo něho předán v.Další informace naleznete v tématu Národní prostředí.
Pokud string1 nebo string2 ukazatel s hodnotou null, je tato funkce vyvolá obslužnou rutinu neplatný parametr, jak je popsáno v Ověření parametrů.Pokud je povoleno zpracování, chcete-li pokračovat, vrátí funkce _NLSCMPERROR a errno je nastavena na EINVAL.
Mapování rutiny obecného textu
Byla zahájena rutina Tchar.h |
_UNICODE a _MBCS není definováno |
_MBCS, definice |
_UNICODE definována |
---|---|---|---|
_tcsncmp |
_mbsnbcmp |
||
_tcsncmp_l |
_mbsnbcml |
Požadavky
Byla zahájena rutina |
Požadované záhlaví |
---|---|
_mbsnbcmp |
<mbstring.h> |
_mbsnbcmp_l |
<mbstring.h> |
Další informace o kompatibilitě 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ýsledek
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
Ekvivalent v rozhraní .NET Framework
Nelze použít Volání funkce standardním C pomocí PInvoke. Další informace naleznete v tématu Příklady volání funkce platformy.
Viz také
Referenční dokumentace
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l