char, wchar_t, char8_t, char16_t, char32_t
Die Typen char
, wchar_t
, char8_t
, char16_t
, und char32_t
sind integrierte Typen, die alphanumerische Zeichen, nicht alphanumerische Glyphen und nicht druckbaren 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 char
Typ kann verwendet werden, um Zeichen aus dem ASCII-Zeichensatz oder einem der ISO-8859-Zeichensätze sowie einzelne Bytes von Multibytezeichen wie Shift-JIS oder die UTF-8-Codierung des Unicode-Zeichensatzes zu speichern. Im Microsoft-Compiler char
ist ein 8-Bit-Typ. Es ist ein unterschiedlicher Typ sowohl als auch signed char
unsigned char
. Standardmäßig werden Variablen vom Typ char
höhergestuft int
als vom Typ signed char
, es sei denn, die /J
Compileroption wird verwendet. Unter /J
, werden sie als Typ unsigned char
behandelt und ohne Signierungserweiterung heraufgestuft int
.
Der Typ unsigned char
wird häufig verwendet, um ein Byte darzustellen, bei dem es sich nicht um einen integrierten Typ in C++ handelt.
Der wchar_t
Typ ist ein implementierungsdefinierter Breitzeichentyp. Im Microsoft-Compiler stellt es ein 16-Bit-breites Zeichen dar, das zum Speichern von Unicode-Codiert als UTF-16LE verwendet wird, dem systemeigenen Zeichentyp unter Windows-Betriebssystemen. Die breiten Zeichenversionen der UCRT-Bibliotheksfunktionen (Universal C Runtime) verwenden wchar_t
und deren Zeiger- und Arraytypen als Parameter und Rückgabewerte, ebenso wie die breiten Zeichenversionen der systemeigenen Windows-API.
Die char8_t
Zeichen und char16_t
char32_t
Typen stellen 8-Bit-, 16-Bit- bzw. 32-Bit-Zeichen dar. (char8_t
ist neu in C++20 und erfordert die /std:c++20
/std:c++latest
Compileroption.) Unicode-codiert als UTF-8 kann im char8_t
Typ gespeichert werden. Zeichenfolgen und char
Typ werden als schmale Zeichenfolgen bezeichnet, auch wenn sie zum Codieren von char8_t
Unicode- oder Multibytezeichen verwendet werden. Unicode-codiert als UTF-16 kann im char16_t
Typ gespeichert werden, und Unicode-codiert als UTF-32 kann im char32_t
Typ gespeichert werden. Zeichenfolgen dieser Typen und wchar_t
werden alle als breite Zeichenfolgen bezeichnet, obwohl der Begriff häufig speziell auf Zeichenfolgen des wchar_t
Typs verweist.
In der C++-Standardbibliothek ist der basic_string
Typ sowohl für schmale als auch für breite Zeichenfolgen spezialisiert. Wird verwendet std::string
, wenn die Zeichen vom Typ char
sind, std::u8string
wenn die Zeichen vom Typ char8_t
sind, std::u16string
wenn die Zeichen vom char16_t
Typ sind, std::u32string
wenn die Zeichen vom Typ char32_t
sind, und std::wstring
wenn die Zeichen vom Typ wchar_t
sind. Andere Typen, die Text darstellen, einschließlich std::stringstream
spezialisierungen std::cout
für schmale und breite Zeichenfolgen.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für