C语言之数组篇

利用数组处理批量数据

大一学的C语言,当时学的时候也模模糊糊的,基本看书,没怎么上机编程。后面用C用得少,基本忘光了。今年脑子一抽,报了C语言二级,接近一百块,要是没考过想着都肉痛,所以拿起书重新学习一下,打牢基础再刷题。
手动分割线,少吹?皮开始学习吧。
###########################################
数组:一批具有同名同属性的数据。
可知,1、数组是一组有序数据的集和;2.数组名和下标唯一确定数组中元素;3、数组元素属于同一数据类型。
注意:C语言规定用方括号中的数字表示下表,eg:s[15]——表示s中第15个元素。

一维数组的定义与引用

数组定义:

类型符 数组名[常量表达式];
注意:
1、数组名和变量名的命名规则相同,字幕数字下滑下数字不能在开头。
2、要指定数组中元素个数,“[常量表达式]——表示元素个数,即数组长度。千万注意,数组的下标是从零开始的
3、常量表达式中可以包含常量和符号变量,eg:int a[3+5];是合法的。但是不能包含变量,即数组的大小不依赖于程序运行过程中变量的值。
说明:在被调用函数中定义的数组,其长度可以是变量或非常量表达式。(当然不包括主函数)调用函数时,形参从实参的到具体值后,在执行函数是,形参值是不变的。{函数的东东等下一章吧}

一维数组元素引用

数组名[下标]
注意:定义数组时用到的”数组名[常量表达式]"和引用数组时用的“数组名[下标]"形式相同,含义不同。

int a[10];//表示定义数组时指定数组包含10个元素
t=a[6];//表示引用a数组中序号为6的元素(注意是序号6,不是第6个元素)

一维数组的初始化

//1、定义数组时对全部数组元素赋予初值。各元素顺序存放在一对花括号中,数据间用逗号隔开。
int a[10]={0,1,2,3,4,5,6,7,8,9};
//2、只给数组中部分赋值,剩余元素初值自动赋0
int a[10]={0,1,2,3,4}
//3、对数组全部元素赋值时可以不指定数组长度,对数组部分元素赋值时必须指定数组长度。下面两个数组均正确但不相同
int a[ ]={1,2,3,4,5};
int a[10]={1,2,3,4,5};

如果在定义数值型数组时,指定了数组的长度并对之初始化,凡未被“初始化列表”指定初始化的数组元素,系统自动把他们初始化为0;
如果是字符型数组,则初始化为‘\0’;如果为指针型数组,则初始化为NULL,即空指针。

二位数组定义和引用

二维数组的定义

类型说明符 数组名[常量表达式][常量表达式];

float a[3][4]

C语言中,二元数组中元素排列是按行存放的。

注意:在内存中个元素是连续存放的,是线性的。

二位数组元素的引用

数组名[下标][下标]
下标是整形表达式,并且在引用数组元素时,下标应在已定义的数组大小范围内。

二维数组的初始化

//1、分行给二维数组赋初值,即按行赋值
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
//2、将所有数据写在一个花括号中,按数组元素在内存中的排列顺序对个元素赋初值
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
//3、对部分元素赋初值,其余元素值自动为0
int a[3][4]={{1},{2},{3}};
//4、对全部元素赋初值时,定义数组时第一维的长度可以不指定,但第二维的长度不能省

字符数组

C语言中没有字符串类型,字符串是存放在字符型数组中的。
字符数组定义、初始化以及引用都和前面的类似。
数组不进行初始化,则数组中的各元素值是不可预测的;
在C语言中
在遇到字符‘\0’时,表示字符串结束,把他前面的字符组成一个字符串。
数组名代表该数组的起始位置;

字符数组的输入输出

(1) “%c"——逐个字符输入输出;
(2)”%s"——整个字符串一次输入或输出;
说明

1、输出字符串不包括结束符‘\0’;
2、"%s"格式输出字符串时,printf函数的输出项是字符数组名,而不是数组元素
printf("%s",c[0]); //❌,这样是错的
3、输出时遇到第一个’\0’时输出结束;
4、可用scanf函数输入一个字符串,如scanf("%s",c);

常用字符串处理函数

1、puts函数——输出字符串,一般形式:puts(字符数组);例:puts(str);
2、gets函数——输入字符串,一般形式:gets(字符数组);例:gets(str);
3、strcat函数——字符串连接,一般形式:strcat(字符数组1,字符数组2);其作用是把字符串2接到字符串1的后面;
4、strcpy和strncpy函数——字符串复制函数,一般形式:strcpy(字符数组1,字符数组2);作用是将字符串2复制到字符数组1中去;strncpy函数是将字符数组2的前n个字符复制到字符数组1中去,例:sryncpy(str1,str2,3);//将str2中的前3个字符复制到str1中去
5、strcmp函数——字符串比较函数,一般形式:strcmp(字符串1,字符串2)。作用是比较两个字符串,规则是***将两个字符串自左至右逐个字符相比(按ASCII码值大小),直到出现不同的字符或遇到’\0’为止***
6、strlen函数——测字符串长度的函数,一般形式:strlen(字符数组),不包括’\0’在内。也可直接测字符串常量的长度;
7、strlwr函数——转换为小写
8、strupr函数——转换为大写

快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值