005--C++字符

  C++对于字符的支持有char和wchar_t,两种,前者处理的是一个8位来表示的字符,而后者则表示更多的字符。

  C++在处理大型字符集时,有两种方式:一是,如果大型字符集是实现的基本字符集,则编译器厂商可以将char定义为一个16位的字节或更长的字节;二是,这种实现可以同时支持小型基本字符集和一个较大的扩展字符集。

  8位char可以表示基本字符集,另一种类型wchar_t(宽字符类型)可以表示扩展字符集。wchar_t类型是一种整数类型,它有足够的空间,可以表示系统使用的最大扩展字符。这种类型与另一种整型(底层(underlying)类型)的长度和符号属性相同。

  cin和cout将输人和输出看作是char流,因此不适于用来处理wchar_t类型。iostream头文件提供了win和wout,可用于处理wchar_t。另外,可以通过加上前缀L来指示宽字符常量和宽字符串。

  wchar_t bob=L'P';

  wout<<L"tall"<<endl;

  C++11在对字符串的支持上新增了两个类型:char16_t和char32_t。

  随着Unicode的日益使用,类型wchar_t显然不再能满足要求。在计算机系统上进行字符和字符串编码时,仅使用Unicode码点并不够。具体说,进行字符串编码时,如果有特定长度和符号特征的类型,将很有帮助,而类型wchar_t的长度和符号特征随实现而已。因此,C++11新增了类型char16_t和char32_t,其中前者是无符号的,长16位,后者也是无符号的,但长32位。C++11使用前缀u表示char16_t字符常量和字符串常量,;并使用前缀U表示char32_t常量。

原文地址:https://www.cnblogs.com/gis-user/p/4907406.html