以下代碼將string
轉換爲wstring
,我需要調用我正在使用的stemming方法。但是,我在其中存儲詞幹詞的map
充滿了strings
。我環顧了一些關於SO的解決方案,其中許多從wstring
到string
的轉換大約有十幾行代碼。 有什麼辦法可以將string
快速(最好是行內或類似的)轉換爲wstring
並返回?C++將字符串轉換爲wstring並用最小代碼返回
string ANSIWord("documentation");
wchar_t* UnicodeTextBuffer = new wchar_t[ANSIWord.length()+1];
wmemset(UnicodeTextBuffer, 0, ANSIWord.length()+1);
mbstowcs(UnicodeTextBuffer, ANSIWord.c_str(), ANSIWord.length());
wWord = UnicodeTextBuffer;
否則,我會考慮轉換我map
等方法來使用wstring
。
編輯:
主顯:我決定將整個轉換法轉換在其自己的方法,從而將其降低到所需的一行。不過,我仍然想知道出於好奇/爲了將來的參考。
不是真的,如果你想做正確的話。畢竟,您需要檢查錯誤並以* some *方式計算所需的輸出長度。 – 2012-04-16 05:03:36
請參閱[絕對最小每個軟件開發人員絕對積極必須知道Unicode和字符集(沒有藉口!)](http://www.joelonsoftware.com/articles/Unicode.html) – 2012-04-16 07:07:28