资源描述:
《第06章数组2.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章数组§6.1一维数组§6.2二维数组§6.3字符数组英文字典中查找英文单词§6.3字符数组二、初始化一、定义三、字符数组元素的引用四、字符串和字符串结束标志五、字符数组的输入输出六、字符串处理函数二、初始化1、逐个字符赋给数组中各元素。例:charch[5]={'a','b','c','d','e'};一、定义格式char数组名[常量表达式];例:charch[10];注意:字符数组的一个元素存放一个字符。例:charch[5]={'a','b','c'};等价:charch[5]={'a','b','c','
2、0',0};§6.3字符数组2、定义时如果初值个数与数组长度相同,可以省略数组长度。例:charch[]={'a','b','c','d','e'};三、字符数组元素的引用例:charch[]={'a','b','c','d','e'}; ch[1]中放的是'b'四、字符串和字符串结束标志字符数组初始化可以采用以下方法:例:charch[5]={"abc"};等价于charch[5]={'a','b','c',' ',0};等价于charch[5]="abc";charch[]="abc";例如:"abcd"其在内存
3、中存储形式为:abcd 字符数组的输入输出可以有以下几种方法:1、逐个字符输入输出。用格式符"%c"输入或输出一个字符。getchar(),putchar()例:charch[20];for(j=0;j<20;j++)scanf("%c",&ch[j]);for(j=0;j<20;j++)printf("%c",ch[j]);五、字符数组的输入输出2、整个字符串一次输出。用"%s"格式符格式:printf("%s",字符数组名);例:charch[20]="abcd";printf("%s",ch);输出:abcd说
4、明:1)输出字符不包括结束符' '。2)用"%s"格式符输出字符串时,printf函数中的输出项是字符数组名或字符串常量,而不是数组元素名或单个字符常量。例:printf("%s","abc");输出:abc如果:printf("%s",'a');则语法错误。3)如果数组长度大于字符串实际长度,只输出到' '结束例:charch[10]={'a','b',' '};printf("%s",ch);输出:ab4)如果一个字符数组中包含一个以上' ',则遇第一个' '时输出就结束。例:charch[10]={'a
5、','b',' ','c','d',' '};printf("%s",ch);输出:ab3、整个字符串一次输入。可以用scanf函数输入一个字符串。例如:scanf("%s",ch);说明:1)scanf函数中的输入项ch是字符数组名,它应该在前面已被定义,不加地址运算符&,C语言中数组名代表该数组的起始地址。。2)从键盘输入的字符串应短于已定义的字符数组的长度。3)输入的字符串以空格或回车表示字符串的结束,系统自 动在后面加一个' '结束符。4)如果利用一个scanf函数输入多个字符串,则以空格分隔。例如:sc
6、anf("%s",ch);键盘输入:Iaamastudent.例1:设有字符串:charsrc[]="S>h?e*$i#$s@Ag!ir?l,s/hei%s(f)ro[]E}n23";设计程序,统计字符串中字符ASCII码值连续的次数n。说明:字符连续如23,32,ab,ba,>?,?>等,在ASCII表上连续。输出格式:n=30算法:从第0个字符数组元素开始到字符数组结束依次进行测试测试src[i]与src[i+1]ASCII码值是否连续:是n++;否测试下一个main(){charsrc[]="S>h?e*$i#$
7、s@Ag!ir?l,s/hei%s(f)ro[]E}n23";inti,n=0;for(i=0;src[i]!=' ';i++)if(src[i]–src[i+1]==1
8、
9、src[i]–src[i+1]==-1)n++;printf("n=%d",n);}例2:从键盘任意输入一个字符,将字符串中该字符删除。字符串为:thisisabook输入:s输出:thiiabook算法:输入一个字符依次判断字符串中各元素值是否与该字符相等:相等,则将字符串后续内容依次前移一位;继续进行判断。main(){chara[]="
10、thisisabook";charc;inti,j=0;c=getchar();for(i=0;a[i]!=' ';i++)if(a[i]==c){for(j=i+1;a[j]!=' ';j++)a[j-1]=a[j];a[j-1]=a[j];i--;}printf("%s",a);}例2:读程序,写出运行结果:main(){