Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 string1 string2 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. Aby uzyskać więcej informacji, zobacz 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 zdefiniowany |
_UNICODE zdefiniowany |
|---|---|---|---|
_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