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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。