内容:
复合类型是基于基本整型和浮点类型创建的。影响最为深远的复合类型是类,它是将学习的OOP的堡垒。
数组
数组是一种数据格式,能够存储多个同类型的值。
数组声明:
例:float loans[20];
可以单独访问数组元素。方法是使用下标或索引来对元素进行编号。注:不能超过下标。
一般坚持使用小型数组。可用for循环对数组进行赋值。
数组的初始化:
只有在定义数组时才能使用初始化。
C++11将使用大括号的初始化(列表初始化)作为一种通用初始化方式。
初始化数组时,可省略等号
例:double earning[]={};
double earning[] {};
字符串
C++处理字符串的方式有两种:
一是C-风格字符串;二是基于string类库的方法;
C-风格字符串具有一种特殊的性质:以空字符结尾。
声明:
char dog[8]={'b','c','\0'};
char bridge[11]={"Mr.Cheep"};
字符串常量:(隐式的包含了结尾的空字符)
char bridge[11]="Mr.Cheep";
char bridge[]="Mr.Cheep";
应确保数组足够大,能够存储字符串中所有的字符(包括空字符)。
C++对字符串长度没有限制,所以处理字符串的函数根据空字符的位置来处理。
任何两个由空白分隔的字符串常量都将自动拼接成一个。
cout<<"I'd give my right arm to be" " a great violinist.\n";
要将字符串存储到数组中,最常用的方法有两种:
strlen()只计算可见的字符,而不把空字符计算在内。
cin使用空白来确定字符串的结束位置。若输入的字符串中包含空格就十分麻烦。
面向行输入:getline();(下次读取跨过换行符)
读取整行,通过使用回车键输入换行符来确定结尾。
使用cin.getline(),该函数有两个参数,第一个用来存储输入行的数组的名称,第二个参数要读取的字符数(包含空字符)。
get();(无法跨过换行符)
使用方法同getline().
可以使用cin.get()(只有一个char型参数,或无参数)来跳过换行符。
也可以合并使用:cin.get(name,size).get();
当get()读取空行后将设置失效位,可用cin.clear();恢复输入。
string类
C++库中添加了string类,可以使用string类型的变量而不是字符数组来存储数组。
要使用string类,必须程序里包含头文件string。string类位于名称空间std中。
在很多方面,string类的使用方式与使用字符数组相同
使用string类时,某些操作比使用数组更简单。
其他形式的字符串字面值
C++11新增的另一种类型是原始字符串raw。在原始字符串中,字符表示的就是自己。如果要使用转义字符就需要\\。
原始字符串将“(和)”用作定界符,用前缀R来标识原始字符串。
如果字符串中包含“(或)”了,就需要使用“+*(和)+*”做定界符。