文档详情

c语言程序设计——字符数组.ppt

发布:2017-06-25约4.29千字共24页下载文档
文本预览下载声明
C语言程序设计(第三版) 教育改变命运,励志改变人生。 珠海广大科技专修学院07软件工程方弘 字符数组 用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。 一、字符数组的定义 定义方法与前面介绍的类似。例如: char c[10]; c[0]=′I′;c[1]=′ ′;c[2]=′a′; c[3]=′m′;c[4]=′ ′;c[5]=′h′;c[6]=′a′; c[7]=′p′;c[8]=′p′;c[9]=′y′; 字符数组类型说明的形式与前面介绍的数值数组相同。一般形式:类型说明符 数组名(常量表达式); 例如:char c[10]; (每个数组元素占1个字节的内存单元) 由于字符型和整型是互相通用的,因此也可定义一个整型数组,用它存放字符数组。 例如:int c[10]; (每个数组元素占2个字节的内存单元, 合法,但浪费存储空间) 1.逐个给数组中的各元素赋初值。 如:char c[10]={′I′, ′ ′, ′a′, ′m′,′ ′ , ′h′,′a′,′p′,′p′,′y′}; 把10个字符分别赋给c[0]—c[9]10个元素。 当对全体元素赋初值时也可以省去长度说明。 二、字符数组的初始化(两种方法) 2.用字符串直接给字符数组赋初值。 C语言中,没有专门的字符串变量,通常用一个字符数组 来存放一个字符串。 如:char c[10]={“I am happy”}; 或char c[10]=“I am happy”; (花括号可省略) 上例也可把长度省略,此时编译系统通过计算初值个数 自动确定该数组长度为11,其中字符串有效长度为10, 另外加上以’ \0’作为字符串的结束符。 字符串方式赋值比用字符逐个赋值要多占一个字节,用 于存放字符串结束标志’ \0’。 三、字符数组的输入输出 (两种方法) 1.用格式符“%c”逐个字符输入输出。 例如:#includestdio.h void main( ) {int i; char c[10]; for(i=0;i10;i++) scanf(“%c”,c[i]); printf(“\n”); for(i=0;i10;i++) printf(“%c”,c[i]); } 2.用格式符“%s”整个字符串输入输出。 例如:#includestdio.h void main( ) {char c[ ]=“China”; printf(“%s\n”,c); } (1)输出字符不包括结束符′\0′。 (2)用“%s”格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。 不能写为printf(″%s″,c[0]); (3)如果数组长度大于字符串实际长度,也只输出到遇′\0′结束。 如果一个字符数组包含一个以上′\0′,则遇到第一个′\0′时输出结束。 说明 (4)可以用scanf函数输入一个字符串。 例如:#includestdio.h void main( ) {char str[20]; scanf(“%s”,str); printf(“%s\n”,str); } 注意: 程序中由于定义数组长度为20,因此输入的字符串长度必须小于20,以留出一个字节用于存放字符串结束标志’ \0’。 对一个字符数组,如果不作初始化赋值,则必须说明数组长度。 说明 当用scanf函数输入字符串时,字符串中不能含 有空格,否则将以空格作为串的结束符。 例如: char str[13]; scanf(“%s”,str); 输入12个字符:How_are_you,系统将空格前的字符”How”送到str中。 如果用一个scanf函数输入多个字符串时,则在输入时以空格分隔。 例如: char str1[5],str2[5],str3[5]; scanf(“%s%s%s”,str1,str2,str3); 输入字符:How_are_
显示全部
相似文档