如何在C ++中将std::wstring
转换为const *char
?
答案 0 :(得分:13)
您可以使用std::wstring
成员函数将const wchar_t *
转换为c_str
:
std::wstring s;
const wchar_t *str = s.c_str();
但是,转换为const char *
并不自然:需要额外调用std::wcstombs
。
答案 1 :(得分:5)
你不能这样做。 std::wstring
表示一串宽(Unicode)字符,而char*
在这种情况下是一串ASCII字符。必须有从Unicode到ASCII的代码页转换。
要进行转换,您可以使用标准库函数,例如wcstombs
或Windows“WideCharToMultiByte
函数。
已更新以合并评论中的信息,感谢您指出。