文档详情

华南农业大学C语言第6章 数组.ppt

发布:2019-04-07约1.7万字共55页下载文档
文本预览下载声明
6.3 字符数组与字符串 C语言中没有专门的字符串类型,使用字符数组来表示和存储字符串。 一维字符数组和二维字符数组定义的一般形式如下: char 数组名[整型表达式]; char 数组名[整型表达式][整型表达式]; 例如: char c[10]; char d[5][20]; 字符数组的初始化 (1) 初始化字符数组所有元素,例如: char message[5] = {H, e, l, l, o}; (2) 初始化字符数组的部分元素,例如: char message[10] = {H, e, l, l, o}; (3) 当花括号中的初始值个数与数组长度相同时,可以省略定义中的数组长度,例如: char message[] = {H, e, l, l, o}; 字符数组的引用 与其他类型数组一样,字符数组也可以使用如下形式引用数组中的一个元素。 数组名[下标] 例6-9:在一维数组中存放一串字符并进行输出。 #include stdio.h int main() { char msg[] = {W,e,l,c,o,m,e, , t,o, ,C}; int i; for(i=0; i12; i++) putchar(msg[i]); putchar(\n); return 0; } Welcome to C 字符串的存储 C语言中没有专门的字符串类型及相应的变量,使用字符数组来存放字符串。 在第2.3.4节字符串常量的介绍中提到,C语言在字符串常量的后面自动加上一个\0作为字符串的结束标记。同样,在使用字符数组存放字符串时,也需要在字符串的后面加上这个结束标记,因此存放字符串的字符数组的长度至少要比其存放的字符串的长度大1。 定义字符数组存放字符串时,可以使用如下两种初始化方式: char msg[] = {hello}; char msg[] = hello; 字符串的输入 (1) 在循环语句中使用scanf函数的“%c”格式控制符逐个输入字符。例如下面的代码从键盘上输入一个长度为10的字符串,存放到字符数组msg中。 char msg[80]; for(i=0; i10; i++) scanf(%c, msg[i]); msg[i] = \0; 最后一条语句的作用是给字符数组中存放的字符串后面加上串结束标记。 若不确定字符串的长度,但知道以什么字符作为输入结束,可以用getchar函数。例如: char msg[80]; for(i=0;(msg[i]=getchar())!=‘\n’i++); msg[i] = \0; 字符串的输入 (2) 直接使用scanf函数的“%s”格式控制字符输入整个字符串,注意字符串中无空格。例如: char msg[80]; scanf(“%s”,msg); 注意:地址表列直接用数组名,不加地址符。 若输入过程中遇到空格、Tab和回车符时,认为输入结束。例如若输入: Welcome to C回车 实际存到数组msg中的字符串只有“Welcome” 字符串的输入 (3) 使用gets函数输入整行字符作为字符串。 gets(字符数组名); 例如: char msg[80]; gets(msg); gets函数在输入字符串时,空格和Tab会作为字符读入到字符数组中,遇到回车符才结束输入。例如若输入: Welcome to C回车 实际存到数组msg中的字符串是“Welcome to C” 字符串的输出 (1) 在循环语句中使用printf函数的“%c”格式控制符逐个输出字符。例如: char msg[20] = hello; for(i=0; msg[i]!=\0; i++) printf(%c, msg[i]); 也可以用putchar函数代替printf函数,例如: char msg[20] = hello; for(i=0; msg[i]!=\0; i++) putchar(msg[i]); 字符串的输出 (2) 直接使用printf函数的“%s”格式控制字符输出整个字符串。例如: char msg[20] = hello; printf(%s, msg); 注意:这里用的是数组名,而非数组元素。 输出时遇到第一个‘\0’,则输出结束。例如: char msg[20] = hello\0 world; print
显示全部
相似文档