_strncnt、_wcsncnt、_mbsnbcnt、_mbsnbcnt_l、_mbsnccnt、_mbsnccnt_l

傳回字元或位元組數目提供的計數中。

重要事項重要事項

_mbsnbcnt、 _mbsnbcnt_l、 _mbsnccnt和 _mbsnccnt_l 不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW

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

參數

  • str
    要檢查的字串。

  • count
    在 str或位元組要檢查的字元數。

  • locale
    使用的地區設定。

傳回值

_mbsnbcnt 和 _mbsnbcnt_l 傳回 str多位元組字元第一個 count 中的位元組數目。_mbsnccnt 和 _mbsnccnt_l 所傳回之位元組的第一個 count 中的字元數目的 str。如果遇到 Null 字元,在 str 中檢查完成之前,會傳回位元組數目或字元在 Null 字元之前找到。如果 str 小於 count 字元或位元組包括,它們傳回字元或位元組數目字串。如果 count 小於零,則會傳回 0。在舊版中,這些函式的傳回值型別 int 而非 size_t。

_strncnt 在單一位元組字串 str的第一個 count 位元組傳回的字元數。_wcsncnt 所傳回的字元數寬字元字串 str的第一個 count 的寬度 (以字元為單位)。

備註

_mbsnbcnt 和 _mbsnbcnt_l 計算 str多位元組字元第一個 count 中的位元組數目。_mbsnbcnt 和 _mbsnbcnt_l 取代 mtob ,應在 mtob位置。

_mbsnccnt 和 _mbsnccnt_l 計算位元組第一個 count 中的字元數目的 str。如果 _mbsnccnt 和 _mbsnccnt_l 以雙位元組字元的第二個位元組遇到空,第一個位元組也視為空且不包含在傳回的值。_mbsnccnt 和 _mbsnccnt_l 取代 btom ,應在 btom位置。

如果 str 為 null 指標或為 count 為 0,這些函式叫用無效的參數處理常式如 參數驗證中所述, errno 設定為 EINVAL函式會傳回 0。

輸出值受地區設定的LC_CTYPE 分類設定所影響。如需詳細資訊,請參閱 setlocale 。這些函式沒有以 _l 後綴的版本在這些地區相依的行為上使用目前的地區設定,而以 _l 後綴版本除了它們會使用傳入的地區設定參數之外運作相同。如需詳細資訊,請參閱地區設定

泛用文字常式對應

程序

未定義的 _UNICODE 和 _MBCS

已定義 _MBCS

已定義 _UNICODE

_tcsnbcnt

_strncnt

_mbsnbcnt

_wcsncnt

_tcsnccnt

_strncnt

_mbsnbcnt

n/a

_wcsncnt

n/a

n/a

_mbsnbcnt

_wcsncnt

n/a

n/a

_mbsnccnt

n/a

n/a

_mbsnbcnt_l

_mbsnccnt_l

需求

程序

必要的標頭檔

_mbsnbcnt

<mbstring.h>

_mbsnbcnt_l

<mbstring.h>

_mbsnccnt

<mbstring.h>

_mbsnccnt_l

<mbstring.h>

_strncnt

<tchar.h>

_wcsncnt

<tchar.h>

如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility)

範例

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

Output

The first 10 characters are single-byte.

.NET Framework 對等用法

不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需更多的資訊,請參閱 Platform Invoke Examples

請參閱

參考

字串操作 (CRT)

地區設定

多位元組字元序列的轉譯工作

_mbsnbcat _mbsnbcat_l