char, wchar_t, char8_t, char16_t, char32_t

Die Typen , , , und sind integrierte Typen, die charwchar_tchar8_tchar16_tchar32_t alphanumerische Zeichen, nicht alphanumerische Glyphen und nicht druckliche Zeichen darstellen.

Syntax

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

Hinweise

Der char Typ war der ursprüngliche Zeichentyp in C und C++. Der -Typ kann verwendet werden, um Zeichen aus dem ASCII-Zeichensatz oder einem der ISO-8859-Zeichensätze sowie einzelne Bytes von char Multibytezeichen wie UMSCHALT-JIS oder die UTF-8-Codierung des Unicode-Zeichensatzes zu speichern. Im Microsoft-Compiler char ist ein 8-Bit-Typ. Es ist ein eindeutiger Typ von signed char und unsigned char . Standardmäßig werden Variablen vom Typ auf so wie vom Typ promotet, es sei denn, charint die signed char/J Compileroption wird verwendet. Unter /J werden sie als Typ behandelt und ohne Vorzeichenerweiterung zu unsigned charint promotet.

Der unsigned char -Typ wird häufig verwendet, um ein unsigned charzu repräsentieren, das kein integrierter Typ in C++ ist.

Der wchar_t Typ ist ein implementierungsdefinierter Breitzeichentyp. Im Microsoft-Compiler stellt sie ein 16-Bit-Breitzeichen dar, das zum Speichern von unicode-codiertem UTF-16LE verwendet wird, dem nativen Zeichentyp Windows Betriebssystemen. Die Breitzeichenversionen der UCRT-Bibliotheksfunktionen (Universal C Runtime) verwenden und deren Zeiger- und Arraytypen als Parameter und Rückgabewerte, ebenso wie die Breitzeichenversionen der nativen wchar_t Windows-API.

Die char8_t Typen , und stellen char16_tchar32_t 8-Bit-, 16-Bit- bzw. 32-Bit-Breitzeichen dar. ( char8_t ist neu in C++20 und erfordert die /std:c++20/std:c++latest Compileroption oder .) Als UTF-8 codiertes Unicode kann im -Typ gespeichert char8_t werden. Zeichenfolgen vom Typ und werden auch dann als schmale Zeichenfolgen bezeichnet, wenn sie zum Codieren von Unicode- oder char8_tchar Multi-Byte-Zeichen verwendet werden. char8_t Als UTF-16 codiertes Unicode kann im -Typ gespeichert werden, und Als UTF-32 codiertes Unicode kann char16_t im -Typ gespeichert char32_t werden. Zeichenfolgen dieser Typen und werden alle als breite Zeichenfolgen bezeichnet, obwohl sich der Begriff häufig speziell wchar_t auf Zeichenfolgen vom wchar_t Typ wchar_t bezieht.

In der C++-Standardbibliothek ist der Typ sowohl für schmale als auch basic_string für breite Zeichenfolgen spezialisiert. Verwenden Sie , wenn die Zeichen vom Typ sind, wenn die Zeichen vom Typ sind, wenn die Zeichen vom Typ sind, wenn die Zeichen vom Typ sind, und wenn die Zeichen vom std::stringchar Typ std::u8stringchar8_tstd::u16stringchar16_tstd::u32stringchar32_tstd::wstringwchar_t sind. Andere Typen, die Text darstellen, einschließlich std::stringstream und std::cout verfügen über Spezialisierungen für schmale und breite Zeichenfolgen.