Share via


_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 string1string2 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 _mbsnbcollpoř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_mbsncmppř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 string1string2 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í _NLSCMPERRORa 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 Definovány _UNICODE Definovány
_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ů