17

std::wstringUnicode スタイルの文字列として使用しています。今、私はのバイトサイズを取得したいwstring. size()のメソッドを使用するとwstring、 の合計文字数を取得するだけですwstring。しかし、バイトはsize() * 2である必要があります。このバイトサイズを取得する公式の方法はありますか? プログラムで size() * 2 を使用したくない.....

RegSetValueExW最後のパラメーターとして使用したい。

4

4 に答える 4

21

str.size() * sizeof(wchar_t)または同等のものを使用してください。

実際、Windows 以外に 2 バイトのプラットフォームは考えられませんwchar_t。4 バイトの方がはるかに一般的です。

于 2012-02-14T14:40:22.197 に答える
9

なぜだめですか :

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

または :

( str.size() * sizeof(std::wstring::traits_type::char_type) ) ;
于 2012-02-14T14:48:00.663 に答える
2
std::wstring s = L"Howdy, world!";
//...
std::size_t bytes_count = s.size() * sizeof s[0];
于 2015-12-22T22:10:13.647 に答える
-3

wcslen機能を使用できます

MSDN リンク: http://msdn.microsoft.com/en-us/library/78zh94ax.aspx

Linux: http://linux.die.net/man/3/wcslen

于 2012-02-15T16:24:25.203 に答える