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

时间:2012-02-14 14:36:38

标签: c++ string winapi size wstring

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

我想在wstring中使用最后一个参数。

4 个答案:

答案 0 :(得分:16)

使用str.size() * sizeof(wchar_t)或同等效果。

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

答案 1 :(得分:8)

为什么不:

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

或者:

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

答案 2 :(得分:1)

std::wstring s = L"Howdy, world!";
//...
std::size_t bytes_count = s.size() * sizeof s[0];

答案 3 :(得分:-3)