当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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