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

时间:2010-12-08 12:14:32

标签: c++

如何在C ++中将std::wstring转换为const *char

2 个答案:

答案 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函数。

已更新以合并评论中的信息,感谢您指出。