在我的代码中,我收到了const char array
,如下所示:
const char * myString = someFunction();
现在我想将它作为wchar array
进行后处理,因为我之后使用的函数不处理窄字符串。
实现这一目标的最简单方法是什么?
最终MultiByteToWideChar? (但是,因为它是一个我输入的窄字符串,它没有多字节字符=>可能不是最漂亮的解决方案)
答案 0 :(得分:3)
除非您在窄字符串中使用扩展字符,否则MultiByteToWideChar将起作用。如果它是一个普通的字母数字字符串,那么它应该可以正常工作。
您还可以查看mbstowcs,它有点不那么复杂,但不能提供相同的控制量。
答案 1 :(得分:3)
const char * myString = someFunction();
const int len = strlen(myString);
std::vector<wchar_t> myWString (len);
std::copy(myString, myString + len, myWString.begin());
const wchar_t * result = &myWString[0];