声明多字节字符数组,其中字节> 2

时间:2018-07-13 18:04:32

标签: c++ c character-encoding

如何声明一个多字节字符数组,其中每个字符代表3或4个字节?

我知道我可以做:char var[] = "AA";可以写到存储器6161,而我可以做wchar var[] = L"AA";可以写00610061。如何在C或C ++中声明更宽的字符数组?

还有L之类的其他前缀来指示编译器这样做吗?

3 个答案:

答案 0 :(得分:6)

C和C ++都提供char32_tC char32_t中的typedef与uint_least32_t类型相同。在C++ char32_t中,其大小,符号和对齐方式与std::uint_least32_t相同,但类型不同。

两者都可以像

一样使用
char32_t string[] = U"some text";

答案 1 :(得分:1)

您可以尝试一下,只要您不介意手动键入每个字符:

int characters[3] = { 'h', 'e', 'y' };

您还可以在字符串文字前使用大写字母U以获得UTF-32:

char32_t characters[] = U"hey";

答案 2 :(得分:1)

谈论多字节字符数组时,最好的选择是使用UTF8编码。这样,所有标准字符串库函数将继续起作用,并且ASCII表示保持不变。