C++中将char* 字符串无损的转化为 wchar_t* 字符串

char*m="asaasasa";p=(wchar_t*)m;std::cout<<p;输出结果:002DAC90不是原来的“asaasasa”,有没有大神有好方法或函... char *m="asaasasa";
p=(wchar_t*)m;
std::cout<<p;
输出结果:002DAC90
不是原来的“asaasasa”,有没有大神有好方法或函数将char* 字符串无损的转化为 wchar_t* 字符串
还有string 类转化为wchar_t字符串的

跪谢大神们了,求教呀~~~~~~~~~~~~!!!!!!!
展开
 我来答
wwylele
2014-03-15 · TA获得超过2523个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:1095万
展开全部

对于纯英文字符串,可以直接复制,但不是复制指针,而是逐个字符复制,例如

char *m="asaasasa";
wchar_t p[9];
int i=0;
while(1)
{
    p[i]=(wchar_t)m[i];
    if(m[i]=='\0')break;
    i++;
}

而对于带有非英文字符的字符串,则需要用到一些库函数来转换。有种省事的办法是这样的:

//还是上面的m和p
swprintf(p,L"%S",m);//%S标志符表示字符串的char与wchar_t相互转换

至于string类,也可以直接按对应的char或wchar型字符串进行相同处理

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式