005--C++字符
2015-10-24 19:16
169 查看
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常量。
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常量。
相关文章推荐
- C++ 中的 Lambda 表达式
- 剑指offer第二十九题【最小的K个数】c++实现
- C语言 计算1!+2!+3!+4!
- 【ThinkingInC++】53、构造函数,析构函数,全局变量
- 统计1到100出现9的次数 1.0
- C++ stl vector
- 计算1-1/2+...+1/99-1/100
- 输出一个整数的每一位
- C++ switch语句写菜单,输入字符串,如何只接收首个字符
- C++ STL中的vector
- C++ this指针详解
- 一张图看懂MingW GCC 5.2.0中的C++的的拷贝构造函数
- C#调用C++ dll的两种方法
- 声明和定义
- C语言 判断花括号是否成对出现
- c语言之栈存储区和堆区理解
- C++中const用法总结
- 004--C++11的初始化方式
- C++代码优化方法总结
- 字母大小写转化