重温C语言数组篇(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