2012-04-16 61 views
0

以下代碼將string轉換爲wstring,我需要調用我正在使用的stemming方法。但是,我在其中存儲詞幹詞的map充滿了strings。我環顧了一些關於SO的解決方案,其中許多從wstringstring的轉換大約有十幾行代碼。 有什麼辦法可以將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

編輯:

主顯:我決定將整個轉換法轉換在其自己的方法,從而將其降低到所需的一行。不過,我仍然想知道出於好奇/爲了將來的參考。

+0

不是真的,如果你想做正確的話。畢竟,您需要檢查錯誤並以* some *方式計算所需的輸出長度。 – 2012-04-16 05:03:36

+1

請參閱[絕對最小每個軟件開發人員絕對積極必須知道Unicode和字符集(沒有藉口!)](http://www.joelonsoftware.com/articles/Unicode.html) – 2012-04-16 07:07:28

回答

0

爲什麼不寫一個包含大約12行代碼的函數來完成轉換,然後調用該函數?

+0

請參閱帖子底部;-) – AnthonyW 2012-04-16 07:04:19

+0

@AnthonyW Ops。對不起:-) – 2012-04-16 07:18:55

相關問題