我知道字母/一位数字可以存储在字符中,
char letter = 'c';
char number = '1';
但是表情符号或外文字母可以存储在字符中吗?如果没有,我该如何存储它们? 没有字符串可以吗?
A
char
通常为 8 位。它可以是有符号的或无符号的(由编译器决定),因此可以具有从 -128
到 127
(对于有符号)或 0
到 255
(对于无符号)的任何整数值。如果可以在该范围内对字符进行编码,则可以将其存储在单个 char
变量中。
还有宽字符 (
wchar_t
),其大小再次取决于编译器和操作系统。它们通常至少为 16 位。
还有显式的 Unicode 字符,
char8_t
表示 UTF-8 编码字符(将在 C++23 标准中添加,因此可能尚未广泛使用),char16_t
表示 UTF-16 中的 16 位字符编码,char32_t
表示 UTF-32 编码中的 32 位字符。
对于表情符号或一般的 Unicode 字符,单个
char
通常是不够的。在 UTF8 编码中使用(多个)char
/char8_t
,或使用(可能多个)char16_t
,或使用 char32_t
。或者,如果您面向 Windows 并使用 Windows API,则它们使用 16 位 wchar_t
来表示 UTF-16 编码字符。