_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 string1string2 zwracają wartość, która wskazuje relację między podciągami. _mbsnbcmpjest wersją z uwzględnieniem wielkości liter ._mbsnbicmp W przeciwieństwie do _mbsnbcollelementu _mbsnbcmp nie ma to wpływu na kolejność sortowania ustawień regionalnych. _mbsnbcmprozpoznaje sekwencje wielobajtowe według bieżącej strony kodu wielobajtowego.

_mbsnbcmp_mbsncmpprzypomina , 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. W celu uzyskania więcej informacji, zobacz następujący temat: 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ą _NLSCMPERRORwartość i errno jest ustawiona na EINVALwartość .

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 Zdefiniowane _UNICODE Zdefiniowane
_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