strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

İki dizenin belirtilen karakter sayısıyla karşılaştırır.

Önemli

_mbsncmpve _mbsncmp_l Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.

Sözdizimi

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

Parametreler

string1, string2
Karşılaştıracak dizeler.

count
Karşılaştıracak karakter sayısı.

locale
Kullanılacak yerel ayar.

Dönüş değeri

Dönüş değeri ve alt dizelerinin string1 string2 ilişkisini aşağıda gösterildiği gibi gösterir.

Dönüş değeri Açıklama
< 0 string1 alt dize alt dizeden string2 küçük
0 string1 alt dize ile string2 aynı alt dize
> 0 string1alt dize, alt dizeden büyük string2

Parametre doğrulama hatasında _mbsncmp ve _mbsncmp_l içinde <string.h> <mbstring.h>tanımlanan değerini döndür._NLSCMPERROR

Açıklamalar

işlevi içindeki strncmp en çok ilk count karakterlerin string1 sıralı karşılaştırmasını gerçekleştirir ve string2 alt dizeler arasındaki ilişkiyi gösteren bir değer döndürür. strncmp , büyük/küçük harfe duyarlı bir sürümüdür _strnicmp. wcsncmp ve _mbsncmp 'nin _wcsnicmp _mbsnicmpbüyük/küçük harfe duyarlı sürümleridir.

wcsncmp ve _mbsncmp geniş karakterli ve çok baytlı sürümleridir strncmp. bağımsız değişkenleri wcsncmp geniş karakterli dizelerdir. bağımsız değişkenleri _mbsncmp çok baytlı karakter dizeleridir. _mbsncmp çok baytlı kod sayfasına göre çok baytlı karakter dizilerini tanır ve bir hata döndürür _NLSCMPERROR .

_mbsncmp Ayrıca ve _mbsncmp_l parametreleri doğrulayın. veya string2 null bir işaretçiyse string1 ve count 0'a eşit değilse, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, _mbsncmp _mbsncmp_l döndürerek _NLSCMPERROR olarak EINVALayarlayınerrno. strncmp ve wcsncmp parametrelerini doğrulamaz. Bu işlevler aynı şekilde davranır.

ve _mbsncmp_l karşılaştırma davranışı_mbsncmp, yerel ayarın LC_CTYPE kategori ayarının ayarından etkilenir. Bu, çok baytlı karakterlerin baştaki ve sondaki baytlarını algılamayı denetler. Daha fazla bilgi için bkz. setlocale. İşlev, _mbsncmp bu yerel ayara bağımlı davranış için geçerli yerel ayarı kullanır. _mbsncmp_l işlevi, parametresini kullanması locale dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar. Yerel ayar tek baytlık bir yerel ayarsa, bu işlevlerin davranışı ile strncmpaynıdır.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Genel metin yordamı eşlemeleri

TCHAR.H olağan _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tcsnccmp strncmp _mbsncmp wcsncmp
_tcsncmp strncmp _mbsnbcmp wcsncmp
_tccmp Makro veya satır içi işlevle eşler _mbsncmp Makro veya satır içi işlevle eşler

Gereksinimler

Yordam Gerekli başlık
strncmp <string.h>
wcsncmp <string.h> veya <wchar.h>
_mbsncmp, _mbsncmp_l <mbstring.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// 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

Ayrıca bkz.

Dize işleme
Yerel ayar
Çok baytlı karakter dizilerinin yorumlanması
_mbsnbcmp, _mbsnbcmp_l
_mbsnbicmp, _mbsnbicmp_l
strcmp, wcscmp, _mbscmp
strcoll işlevleri
_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