char、wchar_t、char16_t、char32_tchar, wchar_t, char16_t, char32_t

charwchar_tchar16_t `および char32_t型は、英数字以外のグリフや非印字文字を表す組み込み型です。The types char, wchar_t, char16_t and char32_t are built-in types that represent alphanumeric characters as well as non-alphanumeric glyphs and non-printing characters.

構文Syntax

char     ch1{ 'a' };  // or { u8'a' }
wchar_t  ch2{ L'a' };
char16_t ch3{ u'a' };
char32_t ch4{ U'a' };

RemarksRemarks

char 型は、C および C++ に由来する文字型です。The char type was the original character type in C and C++. unsigned char型はC++で組み込み型ではないバイトを表現するためによく使用されます。The type unsigned char is often used to represent a byte, which is not a built-in type in C++. char型は、ASCII文字セットやISO-8859文字セットのいずれかの文字、Shift-JISやUnicode文字セットのUTF-8エンコーディングなどのマルチバイト文字の個々のバイトを格納するために使用できます。The char type can be used to store characters from the ASCII character set or any of the ISO-8859 character sets, and individual bytes of multi-byte characters such as Shift-JIS or the UTF-8 encoding of the Unicode character set. char型の文字列は、マルチ バイト文字のエンコードに使用する場合でも、ナロー文字列と呼ばれますStrings of char type are referred to as narrow strings, even when used to encode multi-byte characters. Microsoft コンパイラでcharは、8 ビット型です。In the Microsoft compiler, char is an 8-bit type.

wchar_t型は、ワイド文字の実装定義型です。The wchar_t type is an implementation-defined wide character type. Microsoft コンパイラでするのに対して、UTF 16LE としてエンコードされた Unicode の格納に使用する 16 ビットのワイド文字を表す Windows オペレーティング システムでネイティブ文字の種類。In the Microsoft compiler, it represents a 16-bit wide character used to store Unicode encoded as UTF-16LE, the native character type on Windows operating systems. ユニバーサル C ランタイム (UCRT) ライブラリの関数の使用方法のワイド文字バージョンwchar_tし、そのポインターと配列の型パラメーターと戻り値としては、ネイティブ Windows API のワイド文字バージョンです。The wide character versions of the Universal C Runtime (UCRT) library functions use wchar_t and its pointer and array types as parameters and return values, as do the wide character versions of the native Windows API.

char16_tchar32_t型はそれぞれ 16 ビットおよび 32 ビットのワイド文字を表します。The char16_t and char32_t types represent 16-bit and 32-bit wide characters, respectively. Unicode utf-16 に格納できるようにエンコード、 char16_t型、および Unicode utf-32 に格納できるようにエンコード、 char32_t型。Unicode encoded as UTF-16 can be stored in the char16_t type, and Unicode encoded as UTF-32 can be stored in the char32_t type. これらの型の文字列とwchar_tはすべて呼ばワイド多くの場合とは具体的には文字列の場合は、文字列wchar_t型。Strings of these types and wchar_t are all referred to as wide strings, though the term often refers specifically to strings of wchar_t type.

C++ 標準ライブラリで、basic_stringナローとワイドの両方の文字列の型が特殊化します。In the C++ standard library, the basic_string type is specialized for both narrow and wide strings. 使用std::string型の文字が場合charstd::u16string型の文字が場合char16_tstd::u32string型の文字が場合char32_t、およびstd::wstring型の文字が場合wchar_tします。Use std::string when the characters are of type char, std::u16string when the characters are of type char16_t, std::u32string when the characters are of type char32_t, and std::wstring when the characters are of type wchar_t. その他のテキストを表す型を含むstd::stringstreamstd::coutナローとワイド文字列の特殊化があります。Other types that represent text, including std::stringstream and std::cout have specializations for narrow and wide strings.