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++ mbsinit()用法及代码示例
- C++ mbsrtowcs()用法及代码示例
- C++ mbtowc()用法及代码示例
- C++ mbrtoc32()用法及代码示例
- C++ mbrlen()用法及代码示例
- C++ mbrtoc16()用法及代码示例
- C++ mbrtowc()用法及代码示例
- C++ mblen()用法及代码示例
- 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++ mbstowcs()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。