如何使用 C++ 中字符的 ascii 代码创建 std::wstring?
我需要创建一个 wstring,其字符具有以下 ascii 值:30、29、28、27、26、25。
在 VB6 中,我会执行 asc(30) + asc(29)+ 等...
什么是C++ 等价物?
谢谢!
I need to create a wstring with the chars that have the following ascii values: 30, 29, 28, 27, 26, 25.
In VB6, I would do asc(30) + asc(29)+ etc...
What's the C++ equivalent?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个关于字符集转换的技巧问题吗? :) 因为该标准不保证 ASCII 字符由 wchar_t 中的 ASCII 整数值表示(即使对于大多数编译器/系统来说,这是事实)。如果重要,请使用适当的语言环境显式地扩展字符:
不要以尾随 0 结尾,它是在通过调用 .c_str() 将 wstring 转换为 wchar_t * 时添加的
Is this a trick question about character set conversion? :) Because the standard does not guarantee that an ASCII character is represented by its ASCII integer value in a wchar_t (even though for most compilers/systems, this will be true). If it matters, explicitly widen your char using an appropriate locale:
Don't terminate with a trailing 0, it is added when you convert the wstring to a wchar_t * by invoking .c_str()
std::wstring 只不过是伪装成字符串的 std::vector 。
因此,您应该能够使用 Push_back 方法,如下所示:
不要忘记 0 终止符!
An std::wstring is nothing more than an std::vector disguised as a string.
Therefore you should be able to use the push_back method, like this:
Don't forget the 0-terminator !