满意答案
流逝地遗憾
推荐于 2018.04.05
采纳率:58% 等级:8
已帮助:210人
C++标准中,wchar_t是宽5261字符类型4102,每个wchar_t类型占2个字节,16位宽1653。汉字的表示就内要用到wchar_t 。char,我们都知道,占容一个字节,8位宽。其实知道了这个以后,要在wchar_t 和 char两种类型之间转换就不难实现了。
wchar_t 转换为char 的代码如下:
有如下的wchar_t和char变量
wchar_t w_cn = '中';
char c_cn[2] = {'0'} ;
char *C2W(wchar_t w_cn , char c_cn[2])
{
//following code convert wchar to char
c_cn[0] = w_cn >> 8 ;
c_cn[1] = w_cn ;
c_cn[2] = '\0';
return c_cn ;
}
其中需要注意的是一个16位的wchar_t需要用两个8位的char来存储之。我们可以发现另外一个问题,wchar_t的高位字节应该存储在char数组的低位字节。(这里没有仔细研究了,觉得怪怪的)。
这是完成了wchar_t到char的转化
00分享举报