简单写写这两天的学习笔记

Day5

1.数组

1.1 概念

一组数据类型相同的元素的集合

(1)数据类型相同 (2)地址连续

1.2 定义

存储类型 数据类型 变量名;

int a;

存储类型 数据类型 数组名[元素个数];

int a[5];

存储类型:auto、static、extern、register

数据类型:数组中每一个元素的数据类型

数组的数据类型:数据类型 [元素个数]; int [5]

数据类型:去掉变量名就是数据类型

数组名:(1)数组名代表的是数组首元素的地址

​ (2)代表的是整个数组

元素个数:必须是一个确定的数(常量)

1.3 初始化

1.3.1 部分初始化

int a[5]={1,2,3}

a[3]=a[4]=0

未初始化部分的值为0,因此我们利用这一特点对数组中的元素清零.

1.3.2 全部初始化

int a[5]={1,2,3,4,5};

全部初始化的时候,数组元素的个数可以省

int []={1,2,3};

1.4 数组的访问

数组名[下标];

下标必须从0开始;
在这里插入图片描述

1.5 数组的输入输出

案例:

1、 int a[5];

a[5] = {1,2,3,4,5}; //error

2、 int a[ ] = {0}; //表示数组中只有一个元素,但是这样没有意义

3、 int a[5];

a = {1,2,3,4,5};//error 数组名代表的是数组首元素的地址

1.6 冒泡排序

思想:从左至右两两依次比较,如果前一个数比后一个数大的话就交换位置,否则不变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zOw4bZFz-1667034567960)(C:\Users\程方晖\AppData\Roaming\Typora\typora-user-images\image-20221027135740207.png)]
在这里插入图片描述

2.字符数组

字符数组的本质:字符串(以\0作为结束符)

存储类型 数据类型 数组名[元素个数]

char str[5] = {0};//最多能存放4个元素,留一个位置给’\0’

char str[6] = {‘h’,’e’,’l’,’l’,’o’,’\0’};

char str[6] = {“hello”};

2.1 字符数组的输入输出

2.1.1 字符数组的输出

格式化符 %s;

puts(数组名);

功能:将数组中的字符串打印到终端上,会自动添加换行符

注意:遇到’\0’结束

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5medKtAV-1667034567961)(C:\Users\程方晖\AppData\Roaming\Typora\typora-user-images\image-20221027182951832.png)]

2.1.2 字符串的输入

gets(数组名);

功能:将键盘输入的字符串保存在数组中,会自动在末尾添加‘\0’;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGGTepi7-1667034567961)(C:\Users\程方晖\AppData\Roaming\Typora\typora-user-images\image-20221027183024069.png)]

注意:gets不会进行越界检查,输入的时候注意不要越界

总结:

1、scanf和gets的区别:

scanf是以空格、回车、Tab键作为结束符,而gets是以回车作为结束符

缓冲区:

gets输入完成会自动清空缓冲区

scanf输入完成之后,缓冲区会遗留空格、回车、Tab键

gets输入之前,先会查看缓冲区中是否有内容,有的话直接拿过来使用

scanf是标准输入函数,每一次输入都需要从键盘获取

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SmmhpH1i-1667034567961)(C:\Users\程方晖\AppData\Roaming\Typora\typora-user-images\image-20221027183449711.png)]

Day6

1.字符串的处理函数

1.1 strlen

strlen(数组名)

功能:求字符串的实际长度.

返回值:返回字符串的实际长度,不包括‘\0’
在这里插入图片描述

sizeof和strlen的区别:

1、sizeof是运算符,而strlen是函数

2、sizeof求得的是内存空间的大小,strlen求得的是字符串的实际长度(不包含’\0’)

案例:求字符串的实际长度(不使用库函数)

在这里插入图片描述

1.2 strcpy拷贝函数

strcpy(数组1,数组2/字符串);

功能:将数组2或者字符串2拷贝到数组1中

注意:(1)数组1足够大

​ (2)完全拷贝,会将数组2/字符串2的‘\0‘也拷贝过去

strncpy(数组1,数组2/字符串,n);

功能:将数组2/字符串2的前n个字符拷贝到数组1中

注意:不包含’\0’

1.3 字符串的连接函数

strcat(数组1,数组2/字符串2);

功能:将数组2/字符串2连接到数组1之后

注意:(1)数组1的容量足够大

(2) 数组1中的‘\0’会被覆盖

在这里插入图片描述

strncat(数组1,数组2/字符串2,n);

功能:将数组2/字符串2的前n个字符连接到数组1之后

在这里插入图片描述

1.4 字符串的比较函数

strcmp(数组1/字符串1,数组2/字符串2);

功能:比较两个字符串的大小

返回值:

大于0:字符串1 > 字符串2

等于0:字符串1 == 字符串2

小于0:字符串1 < 字符串2

比较规则:从左至右,依次比较每个字符的ASCII码值,直到遇到不同的ASCII码或者’\0’结束

在这里插入图片描述

strncmp(数组1/字符串1,数组2/字符串2,n);

功能:比较字符串的前n个字符的大小

2.二维数组

2.1 概念

元素为一维数组的数组(数组的数组)

(1)数据类型相同 (2)地址连续

2.2 定义

存储类型 数据类型 数组名[行数][列数];

行数:有几个一维数组

列数:一维数组中有几个元素

int a[2][3];

//定义了一个二维数组,该数组有两个元素,每一个元素是由3个int型的元素组成的

//定义了一个二维数组,该数组有两个元素,每一个元素是由3个int型的元素组成的

在这里插入图片描述

2.3 初始化

2.3.1 部分初始化
int a[2][3] = {1,2,3};
2.3.2 全部初始化
int a[2][3] = {1,2,3,4,5,6};
int a[2][3] = {{0},{4,5,6}};

int a[2][ ] = {1,2,3,4,5,6};//error  列数不能省
int a[ ][3] ={1,2,3,4,5};//有2个一维数组,每一个一维数组中有3个元素
注意:二维数组的行数可以省略,但是列数不能省

2.4 访问

数组名[下标];

注意:下标必须从0开始

2.5 输入输出

在这里插入图片描述

案例:打印杨辉三角(8*8)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

在这里插入图片描述

3.二维字符数组

char str[30] = {0}scanf(%s”,str);
printf(%s”,str);

存储类型 数据类型 数组名[行数][列数];
char str[5][20]; //定义了一个长度为5的数组,数组中的每一个元素又是一个长度为20的char型元素

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值