如何將字符串(wstring)從小寫字母轉換爲大寫字母,反之亦然? 我搜索了網絡,發現有一個STL函數std :: transform。
但到目前爲止,我還沒有想到如何將正確的區域對象例如「Germany_german」賦予該函數。 誰可以幫忙? 我的代碼如下所示:toupper/tolower +語言環境(德語)
wstring strin = L"ABCÄÖÜabcäöü";
wstring str = strin;
locale loc("Germany_german"); // ??? how to apply this ???
std::transform(str.begin(), str.end(), str.begin(), (int(*)(int)tolower);
//result: "abcäöüabcäöü"
字符AOU和AOU(它像AE,大江,UE)將無法正確轉換。
P.S .:我不喜歡大開關汗也我知道BOOST是有能力的一切,我更喜歡STL解決方案。
在此先感謝
哎呀
界定「不正確轉換」請 – Adrian 2010-04-08 08:53:52
NOOOO處理字符! '(a)setlocale(LC_ALL,「」)' - 將語言環境設置爲系統一而不是德語。 (b)'tolower'使用'char'而不是'wchar_t' - 它完全適用於我的意外,因爲8位語言環境可能是UCS的子集Latin1 ...這不是答案 – Artyom 2010-04-08 13:06:51