一、数组概述
构造数据类型之一;数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素;数组中各元素的数据类型要求相同,用数组名和下标确定;数组可以是一维的,也可以是多维的。
1、一维数组
所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的;C语言中,一维数组的说明一般形式为:<存储类型> <数据类型 > <数组名>[常量表达式] ;
注:C语言对数组不作越界检查,使用时要注意;数组名表示内存首地址,是地址常量;sizof(数组名)是数组占用的总内存空间;未使用static修饰的数组不初始化值,其元素值为随机数;对static数组元素不赋初值,系统会自动赋以0值;可以只给部分数组元素赋初值,未赋值部分其值不确定。
2、二位数组
二维数组的定义一般形式为:数据类型 数组名[常量表达式][常量表达式];
注:二位数组元素的存放是按行序优先、顺序存放的,因为内存是一维的。具有两个或两个以上下标的数组称为多维数组。
3、字符数组
字符数组是元素的数据类型为字符类型的数组。
字符数组的初始化:逐个字符赋值;用字符串常量。
C语言中无字符串变量,用字符数组处理字符串,字符串结束标志:‘ ’。
4、字符串函数
C库中实现了很多字符串处理函数
#include <string.h>
a、常见的字符串处理函数:
求字符串长度的函数strlen,不包括‘ ’在内
字符串拷贝函数strcpy,返回字符数组1的首地址,字符数组1必须足够大‚拷贝时‘ ’一同拷贝
字符串连接函数strcat,返回字符数组1的首地址,字符数组1必须足够大‚连接前,两串均以‘ ’结束;连接后,串1的 ‘ ’取消,新串最后加‘ ’
字符串比较函数strcmp,对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘ ’为止,返回int型整数,若串1<串2,返回负整数;若串1> 串2,返回正整数;若串1== 串2, 返回零。
b、字符串处理函数
strncpy(p, p1, n) 复制指定长度字符串
strncat(p, p1, n) 附加指定长度字符串
strcasecmp忽略大小写比较字符串
strncmp(p, p1, n) 比较指定长度字符串
strchr(p, c) 在字符串中查找指定字符
strstr(p, p1) 查找字符串
isalpha() 检查是否为字母字符
isupper() 检查是否为大写字母字符
islower() 检查是否为小写字母字符
isdigit() 检查是否为数字