首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

送分题,CString转成USHORT数组,该如何处理

2012-02-06 
送分题,CString转成USHORT数组一个掺杂中英文的CString,转换成USHORT数组,比如CStringstr 中a国 USHOR

送分题,CString转成USHORT数组
一个掺杂中英文的CString,   转换成USHORT数组,比如

CString   str= "中a国 ";
USHORT   sz[100];

要求转换后
把 '中 '保存至   sz[0]
把 'a '保存至   sz[1]
把 '国 '保存至   sz[2]



[解决办法]
MultiByteToWideChar
[解决办法]
USHORT 就是 wchar的定义,实际上就是多字节字符串转换为宽字节。参考:
http://blog.csdn.net/norains/archive/2006/12/25/1461174.aspx
[解决办法]
CString str= "中a国 ";
USHORT sz[100];

_bstr_t bStrtmp = str.getbuffer();
wcscpy(sz, bStrtmp);
[解决办法]
一般汉字的编码的两个字节都大于0x7F,你可根据这个特点自己写一个转换函数:
当前字符小于0x7F时,拷贝一个字节到目标地址;
当前字符大于0x7F时,拷贝两个字节到目标地址。
[解决办法]
同意dyw(道不同不相为谋)

或者先转换成wchar, 再一个一个转换成char
[解决办法]
char *pChar = "中a国 ";
USHORT szData[100];
memset(szData,0,100*sizeof(WCHAR));
MultiByteToWideChar(CP_ACP,0,pChar,strlen(pChar),szData,100);
[解决办法]
转换成Unicode或UTF8比较常见。

我想要转换后编码不变的,还是GB2312
--------
其实,按你的要求,转换后字符串已经不是GB2312了。

转换为Unicode统一处理后,需要gb2312再转回来。
[解决办法]
汉字编码对照表
http://www.herongyang.com/gb2312/

热点排行