char、wchar

您所在的位置:网站首页 unsignedchar是什么数据类型 char、wchar

char、wchar

2024-07-12 12:57| 来源: 网络整理| 查看: 265

char、wchar_t、char8_t、char16_t、char32_t 项目05/11/2024

类型 char、wchar_t、char8_t、char16_t 和 char32_t 是内置类型,可表示字母数字字符,非字母数字字形和非打印字符。

语法 char ch1{ 'a' }; // or { u8'a' } wchar_t ch2{ L'a' }; char16_t ch3{ u'a' }; char32_t ch4{ U'a' }; 备注

char 类型是 C 和 C++ 中的原始字符类型。 char 类型可存储 ASCII 字符集或任何 ISO-8859 字符集中的字符,以及多字节字符的单个字节,例如 Shift-JIS 或 Unicode 字符集的 UTF-8 编码。 在 Microsoft 编译器中,char 是 8 位类型。 它是与 signed char 和 unsigned char 都不同的类型。 默认情况下,char 类型的变量将提升到 int,就像是从 signed char 类型一样,除非使用 /J 编译器选项。 在 /J 的情况下,它们被视为 unsigned char 类型并提升为 int (没有符号扩展)。

类型 unsigned char 通常用于表示 byte,它不是 C++ 中的内置类型。

wchar_t 类型是实现定义的宽字符类型。 在 Microsoft 编译器中,它表示一个 16 位宽字符,用于存储编码为 UTF-16LE 的 Unicode(Windows 操作系统上的本机字符类型)。 通用 C 运行时 (UCRT) 库函数的宽字符版本使用 wchar_t 及其指针和数组类型作为参数和返回值,本机 Windows API 的宽字符版本也是如此。

char8_t、char16_t 和 char32_t 类型分别表示 8 位、16 位和 32 位宽字符。 (char8_t 是 C++20 中的新增功能,需要 /std:c++20 或 /std:c++latest 编译器选项。)编码为 UTF-8 的 Unicode 可以存储在 char8_t 类型中。 char8_t 和 char 类型的字符串称为“窄”字符串,即使用于编码 Unicode 或多字节字符。 编码为 UTF-16 的 Unicode 可以存储在 char16_t 类型中,而编码为 UTF-32 的 Unicode 可以存储在 char32_t 类型中。 这些类型和 wchar_t 类型的字符串都称为“宽”字符串,但该术语通常特指 wchar_t 类型的字符串。

在 C++ 标准库中,basic_string 类型专用于窄字符串和宽字符串。 字符的类型为 char 时,使用 std::string;字符的类型为 char8_t 时,使用 std::u8string;字符的类型为 char16_t 时,使用 std::u16string;字符的类型为 char32_t 时,使用 std::u32string;而字符的类型为 wchar_t 时,使用 std::wstring。

其他表示文本的类型(包括 std::stringstream 和 std::cout)均可专用于窄字符串和宽字符串。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3