C++17的字符类型

C++17的字符类型

请添加图片描述

C++17标准中的字符类型包括:

  1. char: 最基本的字符类型,占用1个字节,用于存储ASCII字符。

  2. signed char: 带符号的字符类型,占用1个字节,取值范围为-128到127。

  3. unsigned char: 无符号的字符类型,占用1个字节,取值范围为0到255。

  4. wchar_t: 宽字符类型,用于存储Unicode字符,大小取决于编译器和操作系统。

  5. char16_t: 用于存储UTF-16编码的Unicode字符,占用2个字节。

  6. char32_t: 用于存储UTF-32编码的Unicode字符,占用4个字节。

除了这些基本的字符类型,C++17还引入了一些新的字符相关的函数和类型特性,例如:

  1. std::byte: 表示一个字节的类型,用于低级别的内存操作。

  2. std::is_same_v: 用于比较两个类型是否相同,可以判断字符类型是否相同。

  3. std::is_integral_v: 用于判断一个类型是否为整数类型,字符类型也属于整数类型。

此外,C++还提供了一些字符相关的函数,如isalpha()、isdigit()、toupper()、tolower()等,可以方便地对字符进行各种操作和判断。

我再为你补充一些例子,让你更直观地理解C++17中的字符类型~(开心地笑)

  1. 使用char和signed char:
char ch = 'A';
signed char sch = -42;

std::cout << "char: " << ch << std::endl;
std::cout << "signed char: " << static_cast<int>(sch) << std::endl;
  1. 使用unsigned char:
unsigned char uch = 250;

std::cout << "unsigned char: " << static_cast<int>(uch) << std::endl;
  1. 使用wchar_t存储Unicode字符:
wchar_t wch = L'你';

std::wcout << "wchar_t: " << wch << std::endl;
  1. 使用char16_t和char32_t存储UTF-16和UTF-32编码的字符:
char16_t ch16 = u'好';
char32_t ch32 = U'世';

std::cout << "char16_t: " << static_cast<char>(ch16) << std::endl;
std::cout << "char32_t: " << static_cast<char>(ch32) << std::endl;
  1. 使用std::byte进行位操作:
std::byte b1{0b1100'0101};
std::byte b2{0b1011'1010};

std::byte result = b1 & b2;

std::cout << "std::byte result: " << std::hex << std::to_integer<int>(result) << std::endl;
  1. 使用std::is_same_v判断字符类型是否相同:
std::cout << "char和signed char是否相同: " << std::boolalpha << std::is_same_v<char, signed char> << std::endl;
std::cout << "char和unsigned char是否相同: " << std::boolalpha << std::is_same_v<char, unsigned char> << std::endl;
  1. 使用std::is_integral_v判断字符类型是否为整数类型:
std::cout << "char是否为整数类型: " << std::boolalpha << std::is_integral_v<char> << std::endl;
std::cout << "wchar_t是否为整数类型: " << std::boolalpha << std::is_integral_v<wchar_t> << std::endl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值