以下代码将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