什么是一个字符数组转换成WCHAR阵列的最简单的方法?
题
在我的代码,我接收const char array
如下所示:
const char * myString = someFunction();
现在,我想它后处理的,因为我用事后不处理窄字符串的函数wchar array
。
什么是实现这一目标的最简单的方法?
最终的MultiByteToWideChar? (然而,由于它是一种窄字符串我得到作为输入,它不具有多字节字符=>可能不是最美丽的溶液)
解决方案
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];
其他提示
的MultiByteToWideChar会工作,除非你在你的窄字符串中使用扩展字符。如果它的一个普通的字母数字字符串,那么它应该很好地工作。
您也可以看看mbstowcs是少一点令人费解,但不提供相同的控制量。
不隶属于 StackOverflow