strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

Porównuje do określonej liczby znaków z dwóch ciągów.

Ważna uwagaWażne

_mbsncmpi _mbsncmp_l nie można używać w aplikacji, które są wykonywane w środowiska wykonawczego systemu Windows.Aby uzyskać więcej informacji, zobacz funkcji CRT nie obsługują /ZW.

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 relacji podciągów z string1 i string2 w następujący sposób.

Wartość zwracana

Opis

< 0

string1substring mniej niż string2 podciągu

0

string1taka sama, jak SUBSTRING string2 podciągu

> 0

string1substring równy string2 podciągu

Na błąd sprawdzania poprawności parametru _mbsncmp i _mbsncmp_l zwrócić _NLSCMPERROR, która została zdefiniowana w < string.h > i < mbstring.h >.

Uwagi

strncmp Funkcji wykonuje {numer porządkowy porównanie co najwyżej pierwszego count znaki w string1 i string2 i zwraca wartość wskazującą, relacja między podciągów.strncmpjest uwzględniana wielkość liter w nieco _strnicmp.wcsncmpi _mbsncmp jest rozróżniana wielkość liter wersje _wcsnicmp i _mbsnicmp.

wcsncmpi _mbsncmp są wersjami całego znaku i znaków wielobajtowych strncmp.Argumenty wcsncmp są ciągami znaków wide; te _mbsncmp są ciągami znaków wielobajtowych._mbsncmprozpoznaje sekwencje znaków wielobajtowych zgodnie z strony kodowej wielobajtowych i zwraca _NLSCMPERROR na błąd.

Ponadto _mbsncmp i _mbsncmp_l sprawdza poprawność parametrów.Jeśli string1 lub string2 wskaźnik null, program obsługi nieprawidłowy parametr zostanie wywołany, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli jest dozwolone wykonywanie, aby kontynuować, _mbsncmp i _mbsncmp_l zwrócić _NLSCMPERROR i ustawić errno do EINVAL.strncmpi wcsncmp nie sprawdza poprawność ich parametrów.Te funkcje zachowują się tak samo w przeciwnym razie.

Zachowanie porównanie _mbsncmp i _mbsncmp_l zależy od ustawienia LC_CTYPE kategorii ustawienie ustawień regionalnych.Kontroluje wykrywania początkowe i końcowe bajtów wielobajtowych znaków.Aby uzyskać więcej informacji, zobacz setlocale._mbsncmp Funkcja używa bieżących ustawień regionalnych dla tego działania zależne od ustawień regionalnych._mbsncmp_l Funkcji jest identyczna z tą różnicą, że używa locale parametru zamiast niego.Aby uzyskać więcej informacji, zobacz Regionalne.Ustawienia regionalne w przypadku pojedynczych bajtów ustawienia regionalne, działanie tych funkcji jest taka sama, jak strncmp.

Mapowania procedur zwykłego tekstu

Procedura TCHAR.H

_UNICODE & _MBCS nie zdefiniowano

_MBCS zdefiniowano

_UNICODE zdefiniowano

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tccmp

Mapy do funkcji makra lub tekście

_mbsncmp

Mapy do funkcji makra lub tekście

nie dotyczy

nie dotyczy

_mbsncmp_l

nie dotyczy

Wymagania

Procedura

Wymagany nagłówek

strncmp

< string.h >

wcsncmp

< string.h > lub < wchar.h >

_mbsncmp, _mbsncmp_l

< mbstring.h >

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności.

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 );
}
  

Odpowiednik w programie .NET Framework

System::String::COMPARE

Zobacz też

Informacje

Manipulowanie ciągami (CRT)

Regionalne

Interpretacja wielobajtowych sekwencji znaków

_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