数组的定义

数组:

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

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

2.定义:存储类型(auto,extern,register,static)    数据类型 (int  char)     数组名;

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

4.数组名:1)数组名代表的是数组首元素的地址   2)代表的是整个数组

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

5.  初始化          (在进行全部初始化的时候,数组元素的个数可以省略)

int a[5] = {1,2,3}           部分初始化

int a[5]  =  {1,2,3,4,5}         全部初始化

 6.数组的访问: 数组名[下标];       下标必须从零开始

字符数组

1.字符数组的本质:字符串(以’\0’做为结束符)

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

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

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

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

2.字符组的数入输出

格式化符:%s

puts(数组名);

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

注意:遇到’\0’结束

gets(数组名);

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

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

 1、scanf和gets的区别:

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

缓冲区:

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

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

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

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

字符串的处理函数

strlen、strcpy、strcat、strcmp

头文件:#include <string.h>

1.strlen(数组名/字符串);

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

返回值:返回字符串的实际长度,不包含’\0’

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

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

注意:(1)数组1足够大          (2)完全拷贝,会将数组2/字符串2的’\0’也拷贝过去

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

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

注意:不包含’\0’

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

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

注意:(1)数组1的容量足够大  (2)数组1中的‘\0’会被覆盖

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

功能:将数组2/字符串2的前n个字符连接到数组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.1 概念

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

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

2.2 定义

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

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

行数:有几个一维数组

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

int a[2][3];

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

部分初始化

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

全部初始化

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

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

访问

数组名[下标];             注意:下标必须从0开始

输入输出

二维字符数组

char str[30] = {0};

scanf(“%s”,str);

printf(“%s”,str);

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

char str[5][20]; //定义了一个长度为5的数组,数组中的每一个元素又是一个长度为20的char型元素

 

 

 

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值