Aracılığıyla paylaş


_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, _mbsnccntve _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 strincelenecek karakter veya bayt sayısı.

locale
Kullanılacak yerel ayar.

Dönüş değeri

_mbsnbcntve _mbsnbcnt_l değerinin çok baytlı karakterlerinin strilkinde count bulunan bayt sayısını döndürür. _mbsnccnt ve _mbsnccnt_l baytların ilkinde countstrbulunan 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_ttüründe int bir dönüş değerine sahipti.

_strncnt, tek baytlık dizenin strilk count baytlarındaki karakter sayısını döndürür. _wcsncnt, geniş karakter dizesinin strilk count geniş karakterlerindeki karakter sayısını döndürür.

Açıklamalar

_mbsnbcntve _mbsnbcnt_l çok baytlı karakterlerin strilkinde 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 countstrbulunan 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 EINVALayarlanı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>
_wcsncnt <Tchar>

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