在C++中,要將wstring
轉換為其他類型,可以使用相應的轉換函數。以下是一些常見的轉換示例:
wstring
轉換為string
:#include <iostream>
#include <locale>
#include <codecvt>
int main() {
std::wstring wstr = L"Hello, World!";
std::string str;
// 使用wstring_convert進行轉換
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
str = converter.to_bytes(wstr);
std::cout << "Converted string: " << str << std::endl;
return 0;
}
string
轉換為wstring
:#include <iostream>
#include <locale>
#include <codecvt>
int main() {
std::string str = "Hello, World!";
std::wstring wstr;
// 使用wstring_convert進行轉換
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
wstr = converter.from_bytes(str);
std::wcout << "Converted wstring: " << wstr << std::endl;
return 0;
}
wstring
轉換為int
:#include <iostream>
#include <string>
int main() {
std::wstring wstr = L"12345";
int num;
// 使用std::stoi進行轉換
try {
num = std::stoi(wstr);
std::cout << "Converted int: " << num << std::endl;
} catch (const std::invalid_argument& e) {
std::cerr << "Invalid argument: " << e.what() << std::endl;
} catch (const std::out_of_range& e) {
std::cerr << "Out of range: " << e.what() << std::endl;
}
return 0;
}
int
轉換為wstring
:#include <iostream>
#include <string>
int main() {
int num = 12345;
std::wstring wstr;
// 使用std::to_wstring進行轉換
wstr = std::to_wstring(num);
std::wcout << "Converted wstring: " << wstr << std::endl;
return 0;
}
請注意,std::wstring_convert
和std::codecvt_utf8
在C++17中已被棄用,建議使用第三方庫(如ICU)或自定義轉換函數進行字符串轉換。