如何获取 std::wstring 的字节大小?

发布于 2025-01-06 05:38:02 字数 291 浏览 2 评论 0 原文

我使用 std::wstring 作为我的 Unicode 样式字符串。现在我想得到 wstring 的字节大小。 如果我使用 wstringsize() 方法,我只会得到字符总数 在我的 wstring 中。但字节应该是 size() * 2。 有没有官方的方法来获取这个字节大小?我不想使用 size() * 2 在我的程序中......

我想在 RegSetValueExW 中使用作为最后一个参数。

I am using std::wstring as my Unicode style string. Now I want to get the
byte size of a wstring.
If I use size() method of wstring, I just get the total number of chars
in my wstring. But the byte should be size() * 2.
Is there an official way to get this byte size? I don't want to use
size() * 2 in my program.....

I want to use in RegSetValueExW as last parameter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

糖果控 2025-01-13 05:38:02

使用 str.size() * sizeof(wchar_t) 或等效方法。

事实上,我想不出除了 Windows 之外还有任何其他平台具有 2 字节 wchar_t,4 字节更为常见。

Use str.size() * sizeof(wchar_t) or equivalent.

In fact, I can't think of any other platform besides Windows that has 2-byte wchar_t, 4 bytes is far more common.

离线来电— 2025-01-13 05:38:02

为什么不:

( str.size() * sizeof(wchar_t) ) ;

或者:

( str.size() * sizeof(std::wstring::traits_type::char_type) ) ;

Why not :

( str.size() * sizeof(wchar_t) ) ;

Or :

( str.size() * sizeof(std::wstring::traits_type::char_type) ) ;
同尘 2025-01-13 05:38:02
std::wstring s = L"Howdy, world!";
//...
std::size_t bytes_count = s.size() * sizeof s[0];
std::wstring s = L"Howdy, world!";
//...
std::size_t bytes_count = s.size() * sizeof s[0];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文