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


C++ mbstowcs()用法及代码示例


C++ 中的mbstowcs() 函数将多字节字符串转换为等效的宽字符序列。

mbstowcs() 函数在<cstdlib> 头文件中定义。

mbstowcs()原型

size_t mbstowcs (wchar_t* dest, const char* src, size_t max);

mbstowcs() 函数接受三个参数并返回一个整数值。

此函数将第一个元素由src 指向的多字节字符串转换为其宽字符(wchar_t 类型的值)表示形式。

结果存储在 dest 指向的内存位置。参数max 表示要转换的最大多字节字符数。

转换机制与 mbtowc() 相同,只是 mbtowc 转换状态不受影响。如果出现以下情况,转换将停止:

  • 遇到空字符,然后将其转换并存储。
  • 遇到无效的多字节字符。
  • 已转换最大多字节字符数。

参数:

  • dest:指向生成的宽字符数组的指针。
  • src:指向转换为宽字符的多字节字符的第一个元素的指针。
  • max:要转换的最大多字节字符数。

返回:

  • 如果转换成功,mbstowcs() 返回宽字符数,不包括写入目标数组的终止字符(即'\0')。
  • 如果在转换过程中发生任何错误,则返回 -1。

示例:mbstowcs() 函数如何工作?

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

int main()
{
	char src[] = "\xc4\xe3\xba\xc3";
	wchar_t dest[10];
	int num;

	num = mbstowcs(dest, src, MB_CUR_MAX);
	cout << "Number of wide character converted = " << num << endl;
	wcout << "Wide Character String = " << dest << endl;

	return 0;
}

运行程序时,可能的输出将是:

Number of wide character converted = 1
Wide Character String = ─

相关用法


注:本文由纯净天空筛选整理自 C++ mbstowcs()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。