全部博文(1493)
分类: C/C++
2015-05-04 09:16:42
原文地址:C程序设计--利用数组处理批量数据 作者:杨艳杰
一、数组
1、 定义:一批具有同名的同属性的数据
2、 特点
1) 数组是一组有序数据的集合
2) 用一个数组名(如s)和下标(如15)来唯一确定数组中的元素
3) 数组中的每一个元素都属于同一个数据类型
二、怎样定义和引用一维数组
1、 怎样定义一维数组
下面是对数组的定义
int a[10]; //它表示定义了一个整型数组,数组名为a,此数组有10个整型元素
定义一维数组的一般形式
类型符 数组名[常量表达式];
说明:
1) 数组名的命名规则和变量名相同,遵循标识符命名规则
2) 在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。
3) 常量表达式中可以包括常量和符号常量。不能包含变量。也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。
2、 怎样引用一维数组元素
引用数组元素的表示形式为
数组名[下标]
例如a[0]就是数组a中序号为0的元素。
3、 一维数组的初始化
1) 在定义数组时对全部数组元素赋予初值,例如:
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
2) 可以只给数组中的一部分元素赋值,例如:
int a[10] = {0, 1, 2, 3, 4};//定义a数组有10个元素,但花括号之提供5个初值,个初值,这表示只给前面5个元素赋初值,系统自动给后5个元素赋初值为0。
3) 如果想使一个数组中全部元素值为0,可以写成
int a[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 或
int a[10] = {0};
4) 在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不确定数组长度。例如:
int a[5] = {0, 1, 2, 3, 4}; 可以写成
int a[] = {0, 1, 2, 3, 4};
三、怎样定义二维数组
1、 二维数组定义的一般形式
类型说明符 数组名 [常量表达式][常量表达式]; 例如:
float a[3][4]; //定义a为3*4(3行4列)的数组
2、 怎样引用二维数组的元素
二维数组元素的表示形式为
数组名[下标][下标]
注意:在引用数组元素时,下标值应在已定以的数组大小的范围内
3、 二维数组的初始化
可以用“初始化列表”对二维数组初始化
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}
效果与1)相同。但以第1)种方法为好,一行对一行,界限清楚。
3) 可以对部分元素赋初值。例如:
int a[3][4] = {{1}, {5}, {9}}; //它的作用是对各行第一列(即序号为0的列)的元素赋初值,其余元素值自动为0。
4) 如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第1维的长度可以不指定,但第2维的长度不能省。例如:
int [3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 等价于
int [][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
四、字符数组
1、 定义:用来存放字符数据的数组。字符数组中的一个元素存放一个字符
2、 字符数组的初始化
对字符数组的初始化,最容易理解的方式是用“初始化列表”,把各个字符依次赋给数组中各元素。例如:
char c[10] = {‘I’, ‘’, ‘a’, ‘m’, ‘’, ‘h’, ‘a’, ‘p’, ‘p’, ‘y’};
3、 怎样引用字符数组中的元素
可以引用字符数组中的一个元素,得到一个字符。
4、 字符串和字符串结束标志
在C语言中,是将字符串作为字符数组来处理的。C系统在用字符数组存储字符串常量时会自动加一个’\0’作为结束符
说明:’\0’代表ASCII码为0的字符,从ASCII码表中可以查到,ASCII码为0的字符不是一个可以显示的字符,而是一个“空操作符”,即它什么也不做。
5、 字符数组的输入输出
字符数组的输入输出可以有两种方法
1) 逐个字符输入输出。用格式符”%c”输入或输出一个字符
2) 将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串(string)的输入输出。例如:
char c[] = {“China”};
printf(“%s\n”, c);
6、 使用字符串处理函数
1) puts函数--输出字符串的函数
其一般形式为
puts(字符数组)
其作用是将一个字符串(以‘\0’结束的字符序列)输出到终端。
2) gets函数--输入字符串的函数
其一般形式为
gets(字符数组)
其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。
3) strcat函数--字符串连接函数
其一般形式为
strcat(字符数组1, 字符数组2)
其作用是把两个字符数组中的字符串连接起来,把字符串2连接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值—字符数组1的地址。
4) strcpy和strncpy函数--字符串复制函数
其一般形式为
strcpy(字符数组1, 字符串2)
其作用是将字符串2复制到字符数组1中去。例如:
char str1[10], str2[] = “China”;
strcpy(str1, str2);
5) strcmp函数--字符串比较函数
其一般形式为
strcmp(字符串1, 字符串2)
其作用是比较字符串1和字符串2
6) strlen函数—测字符串长度的函数
其一般形式为
strlen(字符数组)
其作用是测试字符串长度,函数的值为字符串中的实际长度(不包括‘\0’在内)。
7) strlwr函数—转换为小写的函数
其一般形式为
strlwr(字符串)
其作用是将字符串中大写字母换成小写字母
8) strupr函数—转换为大写的函数。
其一般形式为
strupr(字符串)
其作用是将字符串中小写字母换成大写字母。