C에서 wstring을 문자열로 변환하려면 어떻게 해야 합니까? 다음 예를 고려하십시오.
#include <string> #include <iostream> int main() { std::wstring ws = L"Hello"; std::string s(ws.begin(), ws.end()); std::cout << "std::string = " << s << std::endl; std::wcout << "std::wstring = " << ws << std::endl; std::cout << "std::string = " << s << std::endl; }
주석 처리된 줄을 사용하면 출력은 다음과 같습니다.
std::string = Hello std::wstring = Hello std::string = Hello
그러나 주석 처리가 없으면 출력은 다음과 같습니다.
std::wstring = Hello
Cubbi가 지적한 대로 std::wstring_convert는 쉬운 솔루션을 제공합니다.
#include <locale> #include <codecvt> std::wstring string_to_convert; using convert_type = std::codecvt_utf8<wchar_t>; std::wstring_convert<convert_type, wchar_t> converter; // Convert wstring to string std::string converted_str = converter.to_bytes(string_to_convert);
도우미 기능을 사용하여 변환을 단순화할 수도 있습니다.
// Convert string to wstring std::wstring s2ws(const std::string& str) { using convert_typeX = std::codecvt_utf8<wchar_t>; std::wstring_convert<convert_typeX, wchar_t> converterX; return converterX.from_bytes(str); } // Convert wstring to string std::string ws2s(const std::wstring& wstr) { using convert_typeX = std::codecvt_utf8<wchar_t>; std::wstring_convert<convert_typeX, wchar_t> converterX; return converterX.to_bytes(wstr); }
위 내용은 C에서 `wstring`을 `string`으로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!