在c ++中将std :: wstring转换为const*char

sub*_*ubs 13 c++

我怎么能转换std::wstringconst *char在C++?

ice*_*ime 13

您可以使用成员函数将a转换std::wstring为a :const wchar_t *c_str

std::wstring wStr;
const wchar_t *str = wStr.c_str();
Run Code Online (Sandbox Code Playgroud)

但是,转换为a const char *并不自然:它需要额外调用std::wcstombs.

  • 你能举一个包括wcstombs的完整例子吗?我正在尝试按照您的建议解决此问题。 (2认同)

Jon*_*Jon 5

你不能这样做.std::wstring表示一串宽(Unicode)字符,而char*在这种情况下是一串ASCII字符.必须有从Unicode到ASCII的代码页转换.

要进行转换,您可以使用标准库函数,如wcstombsWindows或WideCharToMultiByte函数.

更新以包含评论中的信息,感谢您指出.