strncmp
, wcsncmp
, _mbsncmp
, _mbsncmp_l
İki dizenin belirtilen karakter sayısıyla karşılaştırır.
Önemli
_mbsncmp
ve _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 | string1 alt 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
_mbsnicmp
bü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 EINVAL
ayarlayı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 strncmp
aynı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