我可以在 char 中存储什么?

问题描述 投票:0回答:1

我知道字母/一位数字可以存储在字符中,

char letter = 'c';
char number = '1';

但是表情符号或外文字母可以存储在字符中吗?如果没有,我该如何存储它们? 没有字符串可以吗?

c++ char integer emoji
1个回答
4
投票

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 编码字符。

© www.soinside.com 2019 - 2024. All rights reserved.