目录
- 数组
- 字符串
数组
概念
- 数组是有序数据的集合。
- 数组中的每一个元素属于同一个数据类型。
- 通过数组名和下标唯一确定数组中的元素。
一维数组的定义
语法格式
数据类型 数组名[常量表达式]
例如:int arr[10]
表示定义了一个整型数组,数组名为a,数组中有10个元素。
数组的下标从0开始。
数组元素的引用
C语言规定只能逐个引用数组元素二不能一次引用整个数组。
数组元素的的表示形式为: 数组名[下标]
示例:
输出结果:
数组初始化
1.在定义数组时初始化
2.初始化部分元素值
输出
3.初始化全部元素值
初始化全部元素时候,可以不指定数组长度
4.所有元素初始化为0
输出
注意:只能限于初始化元素为0值。否则的话只是对第一个元素初始化。
示例
使用数组解决Fibonacci数列。
Fibonacci数列定义:数列由 0 和 1 开始,之后的系数由之前的两数相加。首几个斐波那契系数是:
0,1,1,2,3,5,8,13,21
输出结果:
二维数组的定义
语法格式
数组名[下标][下标]
二维数组的引用
同一维数组,通过数组名和下标确定唯一的二维数组元素。
二维数组的初始化
1.分行初始化
输出:
2.全部初始化
3.部分元素初始化
输出:
4.初始化全部数据时候可以不指定第一维长度
示例
将一个二维数组行和列的元素互换,保持到另一个二维数组中。
源码:
字符串
定义
C语言中没有定义字符串类型的数据,所以字符串是作为字符数组来处理的。字符数组的定义和使用同其他基本数据类型数组。
注意:字符数组中,C语言使用’\0’来结束一个字符串。如果一个数组包含1个以上的’\0’,则遇到第一个’\0’的时候输出结束。
使用字符串初始化字符数组
输出:
或者:
使用scanf函数接收信息初始化字符数组
注意,sacnf中,数组作为地址参数不需要添加”&”。
字符串处理函数
puts()和gets()
语法格式:
puts(字符数组) :向终端输出字符串
gets(字符数组) :从中断获取字符串
示例:
strcat()
语法格式:
strcat(字符数组1,字符数组2)
作用:
把字符数组2连接到字符数组1后面,结果放在字符数组1中。
示例:
输出:
strcpy()和strncpy()
语法格式:
Strcpy(字符数组1,字符串2)
作用:
将字符串2复制到字符数组1中。
示例:
输出:
注意:
1.字符数组1必须写出数组名形式;字符串2可以是字符数组名,也可以是一个字符串常量。
2.C语言中,不能使用赋值语句将一个字符串常量或者字符数组直接赋值给一个字符数组,例如以下是错误的:
3.strncpy(字符数组1,字符串2,复制长度)可以指定字符串2中的前n个字符复制到字符数组1中。
strcmp()
语法格式
strcmp(字符串1,字符串2)
作用
比较字符串1和字符串2
比较规则:
两个字符串从左向右逐个字符比较(按照ASCII码值比较),直到出现’\0’为止。如果全部字符相同,则两个字符串相等;若出现不同的字符,则以第一个不相同的字符的比较结果为准。
示例:
strlen()
语法格式
strlen(字符数组)
作用
测量字符数组的长度,不包括’\0’。
strlwr()和strupr()
语法格式
strlwr(字符串)和strupr(字符串)
作用
把字符串转换成小写(或者大写)。
strcspn()
语法格式
strcspn(字符串1,字符串2)
作用
查找字符串2在字符串1中的位置
示例
上机练习
- 需求描述:设计一个字符二维数组,用来存储学生信息,学生信息包括:学号,姓名、性别(男或者女)、年龄、电话、地址。
- 提示:二维数组定义 students[10][300],从控制台接收学生信息保持到二维数组,从数组读取学生信息,显示到控制台。
- 提示代码: