共用方式為


_mbclen,mblen _mblen_l

取得長度並判斷多位元組字元的有效性。

重要事項重要事項

這個 API 不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW

size_t _mbclen(
   const unsigned char *c 
);
int mblen(
   const char *mbstr,
   size_t count 
);
int _mblen_l(
   const char *mbstr,
   size_t count,
   _locale_t locale
);

參數

  • c
    多位元組字元。

  • mbstr
    多位元組字元位元組序列的位址。

  • count
    要檢查的位元組數目。

  • locale
    使用的地區設定。

傳回值

_mbclen 會傳回 1 或 2,而定,可能的選取多位元組字元 c 的長度為 1 或 2 位元組。沒有 _mbclen的錯誤傳回。如果 mbstr 不是 NULL, mblen 傳回長度,以位元組為單位),多位元組字元。如果 mbstr 是 NULL 或它指向寬字元), mblen 會傳回 0。如果 mbstr 所指向的物件不會在第一個字元 count 內的有效多位元組字元, mblen 會傳回– 1。

備註

_mbclen 函式會傳回長度,以位元組為單位),多位元組字元 c。如果未指向多位元組字元的前導位元組 (如隱含呼叫取決於 c 為 _ismbblead,則 _mbclen 的結果無法預期。

mblen 會傳回位元組長度則為 mbstr ,如果它是有效的多位元組字元並判斷多位元組字元有效性與字碼頁。mblen 提供比 MB_CUR_MAX 位元組檢查 mbstr或更少的位元組包含,則為 count ,但不是詳細。

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

泛用文字常式對應

Tchar.h 常式

未定義的 _UNICODE 和 _MBCS

已定義 _MBCS

已定義 _UNICODE

_tclen

對巨集或內嵌函式的對應

_mbclen

對巨集或內嵌函式的對應

需求

程序

必要的標頭檔

_mbclen

<mbstring.h>

mblen

<stdlib.h>

_mblen_l

<stdlib.h>

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

範例

// crt_mblen.c
/* illustrates the behavior of the mblen function
 */

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
    int      i;
    char    *pmbc = (char *)malloc( sizeof( char ) );
    wchar_t  wc   = L'a';

    printf( "Convert wide character to multibyte character:\n" );
    wctomb_s( &i, pmbc, sizeof(char), wc );
    printf( "  Characters converted: %u\n", i );
    printf( "  Multibyte character: %x\n\n", *pmbc );

    i = mblen( pmbc, MB_CUR_MAX );
    printf( "Length in bytes of multibyte character %x: %u\n", *pmbc, i );

    pmbc = NULL;
    i = mblen( pmbc, MB_CUR_MAX );
    printf( "Length in bytes of NULL multibyte character %x: %u\n", pmbc, i );
}

Output

Convert wide character to multibyte character:
  Characters converted: 1
  Multibyte character: 61

Length in bytes of multibyte character 61: 1
Length in bytes of NULL multibyte character 0: 0

.NET Framework 對等用法

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

請參閱

參考

字元分類

地區設定

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

_mbccpy _mbccpy_l

strlen、 strlen_l、 wcslen、 wcslen_l、 _mbslen、 _mbslen_l、 _mbstrlen、 _mbstrlen_l