當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C++ mblen()用法及代碼示例

C++ 中的mblen() 函數確定多字節字符的大小(以字節為單位)。

mblen() 函數在<cstdlib> 頭文件中定義。

mblen() 原型 [從 C++ 11 標準開始]

int mblen (const char* s, size_t max);

mblen() 函數接受兩個參數 smax ,並返回一個整數值。指針s 指向函數返回大小的multibyte character 的第一個字節。

參數:

  • s:指向多字節字符的第一個字節的指針或空指針。
  • max:s 中可以檢查的最大字節數。

返回:

如果 s 是空指針,則調用 mblen() 會重置其內部轉換狀態以表示初始移位狀態並返回:

  • 如果當前多字節編碼不是state-dependent(不使用移位序列),則為 0。
  • 如果當前多字節編碼為state-dependent(使用移位序列),則為非零值。

如果 s 不是空指針,mblen() 函數返回:

  • 多字節字符中包含的字節數。
  • -1 如果 s 指向的第一個字節沒有形成有效的多字節字符。
  • 如果 s 指向空字符 '\0',則為 0。

示例:mblen() 函數如何在 C++ 中工作?

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
    int len;
    char *s = (char *)malloc(20);
    strcpy(s,"\xe4\xbd\xa0\xe5\xa5\xbd");

    /* resets the conversion state */
    mblen(NULL, 0);
    len = mblen(s,strlen(s));

    cout << "Length of multibyte character: " << len << endl;
    return 0;
}

運行程序時,輸出將是:

Length of multibyte character: 1

相關用法


注:本文由純淨天空篩選整理自 C++ mblen()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。