第四章 复合数据类型

1、数组

(1)声明
*需要指定数组大小
(2)初始化

int a[3] = {1,2,3};
int a[] = {1,2,3};
int b[3]={0};
a = b;//not allowed

(3)sizeof
数组:返回数组字节数
数组元素:数组元素长度

2、字符串

(1)c风格字符串
本质:char数组,但以‘\0’结尾

char cat[5] = {'a', 'c', 'a', 't', '\0'};//空字符是必须的
char bird[11] = “Mr. Cheeps”;//空字符可以没有
char fish[]="Bubbles";//不指定数组大小

注意:若要指定数组大小,需要把空字符考虑进去

*strlen()返回字符串长度,不包括‘\0’
(2)字符串输入
1、cin读取字符串
*只能读一个单词这样
2、读取一行字符串
getline(name, length)
意义:读取整行,通过回车键来确定输入结尾
name:输入字符串数组名称
length:输入字符串最大长度

char name[20];
cin.getline(name, 20);
cout<<name<<".\n";

通过换行符来确定行尾,但是不保存换行符
get(name, length)
区别:将换行符保存在队列中,下一个字符串读取的时候以为已经到最后了,因此调用有点特别

//第一种方式
cin.get(name, ArSize);//read first line
cin.get();//read new line
cin.get(dessert, Arsize);//read second line
//第二种方式
cin.get(name, ArSize).get();

3、String

#include<string>

(1)区别
*string的长度自动调整
*可以用字符串数组的方式初始化string变量
*可以将一个string对象复制给另一个string对象
*可以进行拼接操作

string str3;
str3 = str1+str2;
str1+=str2;

5、结构

struct inflatable
{
    char name[20];
    float volume;
    double price;
};```

#### 6、enum 美剧

enum spectrum {red, orange, yellow, green, blue, violet, indigo, ultraviolet};

*red、orange、yellow作为符号常量,对应数值0~7

发布了109 篇原创文章 · 获赞 0 · 访问量 8912

猜你喜欢

转载自blog.csdn.net/qq_39029148/article/details/91353774