Udostępnij za pośrednictwem


_mbsnbcmp, _mbsnbcmp_l

Porównuje pierwszą n bajtów dwa ciągi znaków wielobajtowych.

Ważna uwagaWażne

Ten interfejs API nie można używać w aplikacji, których wykonywanie w Środowisko wykonawcze systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /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
    Ciągi znaków do porównania.

  • count
    Liczba bajtów do porównania.

  • locale
    Ustawienia regionalne używane.

Wartość zwracana

Zwracana wartość wskazuje relację między podciągów z string1 i string.

Zwracana wartość

Opis

< 0

string1podciąg jest mniejsza niż string2 podciągu.

0

string1podciąg jest identyczny z string2 podciągu.

> 0

string1podciąg jest większa niż string2 podciągu.

Na błąd _mbsnbcmp zwraca _NLSCMPERROR, który jest zdefiniowany w String.h i Mbstring.h.

Uwagi

_mbsnbcmp Funkcja leksykograficznym porównuje, co najwyżej pierwszy count bajtów w string1 i string2 i zwraca wartość, która wskazuje relację między podciągów._mbsnbcmpjest ona rozróżniana wielkość liter do _mbsnbicmp.W przeciwieństwie do strcoll, _mbsnbcmp nie dotyczy ustawień regionalnych._mbsnbcmprozpoznaje sekwencje znaków wielobajtowych, zgodnie z bieżącym wielobajtowe Strona kodowa.

_mbsnbcmppodobny do _mbsncmp, chyba że _mbsncmp porównuje ciągi znaków, a nie bajtów.

Wartość produkcji jest zagrożony LC_CTYPE kategorii ustawienie regionalne tzn. zobacz setlocale Aby uzyskać więcej informacji.Wersja tej funkcji, która nie ma _l sufiks używa bieżących ustawień regionalnych tego zachowania zależne od ustawień lokalnych; wersję, która ma _l sufiks jest identyczny z tym, że parametr ustawień regionalnych, przesyłanych w zamian.Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Jeśli każda string1 lub string2 jest pusty wskaźnik, funkcja ta wywołuje program obsługi nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może w dalszym ciągu, funkcja zwraca _NLSCMPERROR i errno jest ustawiona na EINVAL.

Tekst rodzajowy rutynowych mapowania

Rozpoczęto wykonywanie procedury TCHAR.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tcsncmp_l

strncmp

_mbsnbcml

wcsncmp

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_mbsnbcmp

<mbstring.h>

_mbsnbcmp_l

<mbstring.h>

Informacji dotyczących 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 );
}

Dane wyjściowe

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

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywoływać funkcji C standardowej, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Platforma wywołać przykłady.

Zobacz też

Informacje

Manipulowanie ciągami (CRT)

_mbsnbcat, _mbsnbcat_l

_mbsnbicmp, _mbsnbicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

Ustawienia regionalne

Interpretacja sekwencje znaków wielobajtowych