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 się z określoną liczbą znaków dwóch ciągów.
Ważne
_mbsncmpnie można jej _mbsncmp_l 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 strncmp(
const char *string1,
const char *string2,
size_t count
);
int wcsncmp(
const wchar_t *string1,
const wchar_t *string2,
size_t count
);
int _mbsncmp(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsncmp_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);int _mbsnbcmp(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
Parametry
string1, string2
Ciągi do porównania.
count
Liczba znaków do porównania.
locale
Ustawienia regionalne do użycia.
Wartość zwracana
Wartość zwracana wskazuje relację podciągów string1 i string2 w następujący sposób.
| Wartość zwracana | opis |
|---|---|
| < 0 | string1 podciąg mniejsze niż string2 podciąg |
| 0 | string1 podciąg taki sam jak string2 podciąg |
| > 0 | string1 podciąg większy niż string2 podciąg |
W przypadku błędu sprawdzania poprawności parametru _mbsncmp i _mbsncmp_l zwróć wartość _NLSCMPERROR, która jest zdefiniowana w elementy <string.h> i <mbstring.h>.
Uwagi
Funkcja strncmp wykonuje porównywanie porządkowe co najwyżej pierwszych count znaków i string1 string2 zwraca wartość wskazującą relację między podciągami. strncmpjest wersją z uwzględnieniem wielkości liter ._strnicmp wcsncmp i _mbsncmp to wersje z uwzględnieniem wielkości liter i _wcsnicmp _mbsnicmp.
wcsncmpi _mbsncmp są wersjami znaków wielobajtowych i wielobajtowych .strncmp Argumenty to wcsncmp ciągi o szerokim znaku. Argumenty funkcji to ciągi wielobajtowe _mbsncmp znaków. _mbsncmp rozpoznaje sekwencje wielobajtowe znaków zgodnie ze stroną kodu wielobajtowego i zwraca błąd _NLSCMPERROR .
_mbsncmp Ponadto i _mbsncmp_l zweryfikuj parametry. Jeśli string1 lub string2 jest wskaźnikiem o wartości null i count nie jest równy 0, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, _mbsncmp i zwracanie _mbsncmp_l _NLSCMPERROR i ustawianie wartości errno .EINVAL strncmp i wcsncmp nie weryfikuj ich parametrów. Te funkcje zachowują się identycznie inaczej.
Zachowanie porównania i _mbsncmp _mbsncmp_l ma wpływ na ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. Umożliwia to wykrywanie bajtów wiodących i końcowych znaków wielobajtowych. Aby uzyskać więcej informacji, zobacz setlocale. Funkcja _mbsncmp używa bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych. Funkcja jest identyczna _mbsncmp_l , z tą różnicą, że używa parametru locale . Aby uzyskać więcej informacji, zobacz Ustawienia regionalne. Jeśli ustawienia regionalne są ustawieniami regionalnymi jedno bajtów, zachowanie tych funkcji jest identyczne z strncmp.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
TCHAR.H rutyna |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
|---|---|---|---|
_tcsnccmp |
strncmp |
_mbsncmp |
wcsncmp |
_tcsncmp |
strncmp |
_mbsnbcmp |
wcsncmp |
_tccmp |
Mapuje na makro lub funkcję śródliniową | _mbsncmp |
Mapuje na makro lub funkcję śródliniową |
Wymagania
| Procedura | Wymagany nagłówek |
|---|---|
strncmp |
<string.h> |
wcsncmp |
<string.h> lub <wchar.h> |
_mbsncmp, _mbsncmp_l |
<mbstring.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// crt_strncmp.c
#include <string.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 %s\n\n",
string1, string2 );
printf( "Function: strncmp (first 10 characters only)\n" );
result = strncmp( string1, string2 , 10 );
if( result > 0 )
strcpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
strcpy_s( tmp, sizeof(tmp), "less than" );
else
strcpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n\n", tmp );
printf( "Function: strnicmp _strnicmp (first 10 characters only)\n" );
result = _strnicmp( string1, string2, 10 );
if( result > 0 )
strcpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
strcpy_s( tmp, sizeof(tmp), "less than" );
else
strcpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n", tmp );
}
Compare strings:
The quick brown dog jumps over the lazy fox
The QUICK brown fox jumps over the lazy dog
Function: strncmp (first 10 characters only)
Result: String 1 is greater than string 2
Function: strnicmp _strnicmp (first 10 characters only)
Result: String 1 is equal to string 2
Zobacz też
Manipulowanie ciągami
ustawienia regionalne
Interpretacja sekwencji znaków wielobajtowych
_mbsnbcmp, _mbsnbcmp_l
_mbsnbicmp, _mbsnbicmp_l
strcmp, , wcscmp_mbscmp
strcoll, funkcje
_strnicmp, , _wcsnicmp, _mbsnicmp, _strnicmp_l, , _wcsnicmp_l_mbsnicmp_l
strrchr, , wcsrchr, , _mbsrchr_mbsrchr_l
_strset, , _strset_l, _wcsset, _wcsset_l, , _mbsset_mbsset_l
strspn, , wcsspn, , _mbsspn_mbsspn_l