Как преобразовать std:: wstring в const * char в С++?
Конвертировать std:: wstring в const * char в С++
Ответ 1
Вы можете преобразовать std::wstring
в const wchar_t *
с помощью функции-члена c_str
:
std::wstring s;
const wchar_t *str = s.c_str();
Однако преобразование в const char *
не является естественным: для этого требуется дополнительный вызов std::wcstombs
.
Ответ 2
Вы не можете сделать это просто так. std::wstring
представляет собой строку с широкими (Unicode) символами, а char*
в этом случае является строкой символов ASCII. Должно быть преобразование кодовой страницы из Unicode в ASCII.
Для преобразования вы можете использовать стандартные библиотечные функции, такие как wcstombs
или Windows WideCharToMultiByte
.
Обновлено, чтобы включить информацию из комментариев, спасибо, что указали это.