_strncnt
, _wcsncnt
, _mbsnbcnt
, , _mbsnbcnt_l
, _mbsnccnt
, _mbsnccnt_l
Belirtilen sayı içindeki karakter veya bayt sayısını döndürür.
Önemli
_mbsnbcnt
, _mbsnbcnt_l
, _mbsnccnt
ve _mbsnccnt_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
size_t _strncnt(
const char *str,
size_t count
);
size_t _wcsncnt(
const wchar_t *str,
size_t count
);
size_t _mbsnbcnt(
const unsigned char *str,
size_t count
);
size_t _mbsnbcnt_l(
const unsigned char *str,
size_t count,
_locale_t locale
);
size_t _mbsnccnt(
const unsigned char *str,
size_t count
);
size_t _mbsnccnt_l(
const unsigned char *str,
size_t count,
_locale_t locale
);
Parametreler
str
İncelenecek dize.
count
içinde str
incelenecek karakter veya bayt sayısı.
locale
Kullanılacak yerel ayar.
Dönüş değeri
_mbsnbcnt
ve _mbsnbcnt_l
değerinin çok baytlı karakterlerinin str
ilkinde count
bulunan bayt sayısını döndürür. _mbsnccnt
ve _mbsnccnt_l
baytların ilkinde count
str
bulunan karakter sayısını döndürür. İnceleme str
tamamlanmadan önce null karakterle karşılaşılırsa, null karakterden önce bulunan bayt veya karakter sayısını döndürür. Karakter veya bayttan count
daha az karakterden oluşuyorsastr
, dizedeki karakter veya bayt sayısını döndürür. Sıfırdan küçükse count
0 döndürür. Önceki sürümlerde, bu işlevler yerine size_t
türünde int
bir dönüş değerine sahipti.
_strncnt
, tek baytlık dizenin str
ilk count
baytlarındaki karakter sayısını döndürür. _wcsncnt
, geniş karakter dizesinin str
ilk count
geniş karakterlerindeki karakter sayısını döndürür.
Açıklamalar
_mbsnbcnt
ve _mbsnbcnt_l
çok baytlı karakterlerin str
ilkinde count
bulunan bayt sayısını sayar. _mbsnbcnt
yerine _mbsnbcnt_l
ve yerine mtob
kullanılmalıdır mtob
.
_mbsnccnt
ve _mbsnccnt_l
baytların ilkinde count
str
bulunan karakter sayısını sayar. Çift baytlık bir karakterin ikinci baytında null karakterle karşılaşırsanız _mbsnccnt
, _mbsnccnt_l
ilk bayt da null olarak kabul edilir ve döndürülen sayı değerine dahil edilmez. _mbsnccnt
yerine _mbsnccnt_l
ve yerine btom
kullanılmalıdır btom
.
İşaretçi veya str
0 isecount
, bu işlevler Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır, errno
olarak EINVAL
ayarlanır ve işlev 0 döndürür.NULL
Çıkış değeri, yerel ayarın LC_CTYPE
kategori ayarının ayarından etkilenir. Daha fazla bilgi için bkz. setlocale
. Bu işlevlerin son eki olmayan _l
sürümleri, bu yerel ayara bağımlı davranış için geçerli yerel ayarı kullanır; son ekine _l
sahip sürümler, bunun yerine geçirilen yerel ayar parametresini kullanmaları dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.
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
Yordam | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_tcsnbcnt |
_strncnt |
_mbsnbcnt |
_wcsncnt |
_tcsnccnt |
_strncnt |
_mbsnbcnt |
yok |
_wcsncnt |
yok | yok | _mbsnbcnt |
_wcsncnt |
yok | yok | _mbsnccnt |
yok | yok | _mbsnbcnt_l |
_mbsnccnt_l |
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_mbsnbcnt |
<mbstring.h> |
_mbsnbcnt_l |
<mbstring.h> |
_mbsnccnt |
<mbstring.h> |
_mbsnccnt_l |
<mbstring.h> |
_strncnt |
<tchar.h> |
_wcsncnt |
<tchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// crt_mbsnbcnt.c
#include <mbstring.h>
#include <stdio.h>
int main( void )
{
unsigned char str[] = "This is a multibyte-character string.";
unsigned int char_count, byte_count;
char_count = _mbsnccnt( str, 10 );
byte_count = _mbsnbcnt( str, 10 );
if ( byte_count - char_count )
printf( "The first 10 characters contain %d multibyte characters\n", char_count );
else
printf( "The first 10 characters are single-byte.\n");
}
Çıktı
The first 10 characters are single-byte.
Ayrıca bkz.
Dize işleme
Yerel ayar
Çok baytlı karakter dizilerinin yorumlanması
_mbsnbcat
, _mbsnbcat_l