在C++中如何将string对象存储的字符串转化为wchar_t类型的数组?

wkw414503295 2010-05-19 03:14:46
比如我定义了一个string对象:string str("程序测试");
现在我想得到wchar_t类型的数组:L"程序测试",怎样才能实现呢?
希望高手能够给予解答!
...全文
319 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
白云飘飘飘 2010-05-19
  • 打赏
  • 举报
回复
说明string中的字符编码是本机默认字符集,即GB字符集
wkw414503295 2010-05-19
  • 打赏
  • 举报
回复
谢谢lhcwjy,在给分之前想请你解释一下:setlocale(LC_ALL,"")语句的含义?
白云飘飘飘 2010-05-19
  • 打赏
  • 举报
回复
string str("程序测试");
setlocale(LC_ALL,"");
wchar_t wstr[100];
mbstowcs(wstr,str.c_str(),strlen(str.c_str())+1);
wkw414503295 2010-05-19
  • 打赏
  • 举报
回复
谢谢各位帮忙,你们可能误解我的意思了。
我把问题再描述一下:我要调用一个函数,它的一个参数是const wchar_t*类型的,表示一个待处理的中文句子;而我要处理的中文句子是用string对象存储的。现在我要怎么处理这个string对象才能让他与函数参数内省匹配?
toplinq 2010-05-19
  • 打赏
  • 举报
回复
晕,把以前写的公用类名都贴出来了。。。。改正

std::wstring s2ws(const std::string& s)
{
char* t = s.c_str();
wchar_t* pwchar = (wchar_t*)t;
std::wstring result = pwchar;
return result;
}

toplinq 2010-05-19
  • 打赏
  • 举报
回复
直接转就可以了,变成wstring,要不你就回wchar_t *好了

std::wstring ProcessSSE::s2ws(const std::string& s)
{
char* t = s.c_str();
wchar_t* pwchar = (wchar_t*)t;
std::wstring result = pwchar;
return result;
}
moolleychean 2010-05-19
  • 打赏
  • 举报
回复
wstring
白云飘飘飘 2010-05-19
  • 打赏
  • 举报
回复
wstring wstr(L"程序测试");

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧