2012-04-16 63 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

相关问题