C++ 中的mbtowc() 函数将多字节字符转换为宽字符。
mbtwoc() 函数在<cstdlib> 头文件中定义。
mbtowc()原型
int mbtowc (wchar_t* pwc, const char* pmb, size_t max);
mbtowc() 函数接受三个参数并返回一个整数值。此函数将 pmb
指向的 multibyte character 转换为宽字符(wchar_t 类型的值)并存储在 pwc
指向的内存位置。
如果pmb
是空指针,则调用mbtowc() 将重置全局转换状态并确定是否使用移位序列。
参数:
pwc
:指向生成的宽字符的指针pmb
: 指向转换为宽字符的多字节字符的指针max
:要考虑的多字节字符的最大大小(以字节为单位)。
返回:
如果 pmb
不是空指针,则 mbtowc() 返回:
pmb
指向的多字节字符中包含的字节数。- -1 如果
pmb
指向的第一个字节不形成有效的多字节字符。 - 如果
pmb
指向终止空字符,即 '\0',则为 0。
如果pmb
是空指针,则重置其内部转换状态以表示初始移位状态并返回:
- 0 如果当前多字节编码不是state-dependent(不使用移位序列)
- 如果当前多字节编码为state-dependent(使用移位序列),则为非零值。
示例:mbtowc() 函数如何工作?
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main()
{
char pmb[] = "Welcome to Programiz.com";
wchar_t pwc[100];
int len, ret_val;
/* resets internal conversion state */
mbtowc (NULL, NULL, 0);
len = strlen(pmb);
ret_val = mbtowc(pwc, pmb, strlen(pmb));
cout << "Return Value = " << ret_val << endl;
wcout << "Wide character string: " << pwc;
return(0);
}
运行程序时,可能的输出将是:
Return Value = 1 Wide character string: W@
相关用法
- C++ mbsinit()用法及代码示例
- C++ mbrtoc32()用法及代码示例
- C++ mbrlen()用法及代码示例
- C++ mbrtoc16()用法及代码示例
- C++ mbrtowc()用法及代码示例
- C++ mbstowcs()用法及代码示例
- C++ mblen()用法及代码示例
- 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++ mbtowc()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。