C++ 中的mblen() 函數確定多字節字符的大小(以字節為單位)。
mblen() 函數在<cstdlib> 頭文件中定義。
mblen() 原型 [從 C++ 11 標準開始]
int mblen (const char* s, size_t max);
mblen() 函數接受兩個參數 s
和 max
,並返回一個整數值。指針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++ mbtowc()用法及代碼示例
- C++ mbsinit()用法及代碼示例
- C++ mbrtoc32()用法及代碼示例
- C++ mbrlen()用法及代碼示例
- C++ mbrtoc16()用法及代碼示例
- C++ mbrtowc()用法及代碼示例
- C++ mbstowcs()用法及代碼示例
- C++ mbsrtowcs()用法及代碼示例
- C++ map lower_bound()用法及代碼示例
- C++ multimap key_comp()用法及代碼示例
- C++ merge()用法及代碼示例
- C++ multimap empty()用法及代碼示例
- C++ multimap cend()用法及代碼示例
- C++ multiset begin()、end()用法及代碼示例
- C++ map::at()用法及代碼示例
- C++ multiset value_comp()用法及代碼示例
- C++ multimap insert()用法及代碼示例
- C++ memset()用法及代碼示例
- C++ map max_size()用法及代碼示例
- C++ multiset emplace()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ mblen()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。