Datentype für Zeichen und Strings
char, wchar_t, char16_t, char32_t, u16string, u32string
char entspricht i.d.R. 256 Ausprägungen und belegt normalerweise 1 Byte bzw. 8 Bit. Wobei 1 Byte nicht auf allen Plattformen 8 Bit entspricht.
Wie viele Bits ein char auf dem jeweiligen System tatsächlich hat, lässt sich mit std::numeric_limits<unsigned char>::digits ermitteln.
Ein sizeof(char) muss immer eine 1 ergeben.
wchar_t - für "breite" Zeichen. Bei der Deklration wird das Präfix L verwendet, wie z.B. L'A' für ein "breites" A. Für die Ausgabe wird statt den Ausgabe-Stream cout der Stream wcout verwendet. Der Type wchar_t ist aber compilerspezifisch und entspricht mal 16 und mal 32 Bit.
Der C++11-Standard implementiert Unicode-Typen char16_t und char32_t mit fester Breite von 16 bzw. 32 Bit.
Präfixe für die Stringliterale:
Kodierung | Datentyp | Stringliteral |
---|---|---|
UTF-8 | char | u8"Unicode-String" |
UTF-16 | char16_t | u"Unicode-String" |
UTF-32 | char32_t | U"Unicode-String" |
Wichtig: Ein Unicode-Zeichen belegt nicht unbedingt ein einziges char/char16_t/char32_t!
u16string
u32string
Stand: 06.10.2014
— : Jürgen Kreick
EOF