C++ 使用最少的代码将字符串转换为 wstring 并返回
Posted
技术标签:
【中文标题】C++ 使用最少的代码将字符串转换为 wstring 并返回【英文标题】:C++ convert string to wstring and back with Minimal code 【发布时间】:2012-04-16 04:56:59 【问题描述】:以下代码将string
转换为wstring
,我需要调用我正在使用的词干提取方法。但是,我存储词干的map
充满了strings
。我查看了一些关于 SO 的解决方案,从wstring
到string
的许多转换都是大约十几行代码。 有什么方法可以快速(最好是内联或类似)从 string
转换为 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 方式计算所需的输出长度。 见The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) 【参考方案1】:您为什么不编写一个包含大约 12 行代码的函数来进行转换,然后调用该函数?
【讨论】:
以上是关于C++ 使用最少的代码将字符串转换为 wstring 并返回的主要内容,如果未能解决你的问题,请参考以下文章
使用 ostringstream 或 stringstream 将 C++ Int 转换为字符串