wstringとstringの違いは何ですか



What Is Difference Between Wstring



中国では、wstringは主に漢字のために存在します。 typedef basic_string string typedef basic_string wstring違いはcharまたはwchar_tにあります#ifndef _WCHAR_T_DEFINED typedef unsigned short wchar_t #define _WCHAR_T_DEFINED #endifしたがって、wchar_tは基本的にunsigned shortで、サイズは2バイト、つまり16ビットです。
通常ASCIIエンコーディングに対応するために使用される狭い文字(1単位と1文字)ワイド文字(一般にUNICODEエンコーディングに対応するために使用される)、1ユニットに2文字
つまり、ワイド文字の場合、各文字は16ビット、つまり2文字のサイズを表します。漢字を表現するには16ビットが必要です。
以下はテスト例です:string s = 'Hello!' cout << s[1] << endl出力は「良好」だと思いますが、実際には文字化けしています。正しい出力方法は次のとおりですstring s = 'Hello!' cout << s[2] << s[3] << endl wstringを使用すると、string wcout.imbue(std::locale('chs')) wstring ws = L 'Hello!' wcout << ws[1] << endlのような漢字を出力できます。

転載: wstringとstringの違いは何ですか