第9章 字符数组和字符串ppt课件.ppt
《第9章 字符数组和字符串ppt课件.ppt》由会员分享,可在线阅读,更多相关《第9章 字符数组和字符串ppt课件.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第9章 字符数组和字符串 第九章 字符数组与字符串字符数组与字符串l知识点: 字符数组 字符串字符数组与字符串的输入输出 字符串处理函数 字符指针2022-5-20 32022-5-20 4字符数组l在学习字符串常量时,C语言无字符串变量,只能用字符数组处理字符串。l所谓的字符串,实际上就是字符数组,但必须带有字符串结束标志:0例:“hello”共5个字符,占6个字节内存,但字符串长度仍是5 1041011081081110 hello0内存中存放字符的是ASCII码值2022-5-20 5一维字符数组例:char ch5=H,e,l,l,o;逐个字符赋值。这也是最基本的赋值方法。l字符数组定
2、义l例:char c10, ch34;l字符数组的初始化ch0ch1ch2ch3ch4Hello注意:本例中由于5个元素全部被赋了值,所以不能被自动加上字符串结束标志!2022-5-20 6例:char ch6=“Hello”; char ch6=“Hello”; char ch=“Hello”;一维字符数组l字符数组定义l例:char c10, ch34;l字符数组的初始化用字符串常量给字符数组赋值可以有3种方式Hello0ch0ch1ch2ch3ch4ch5正如本例所示,给字符数组赋值时应当多预留至少一个字节!2022-5-20 7一维字符数组l字符数组定义l例:char c10, ch3
3、4;l字符数组的初始化例:char ch5=B,o,y;Boy00逐个字符进行赋值。ch0ch1ch2ch3ch4注意:本例中只有3个元素被赋了值,其余元素都被自动初始化为零,即字符串结束标志。2022-5-20 8一维字符数组l字符数组定义l例:char c10, ch34;l字符数组的初始化例1: char ch5=“Boy”; Boy00ch0ch1ch2ch3ch4用字符串常量给部分数组元素赋值2022-5-20 9一维字符数组注意:本例当中,使用赋值语句为一个字符数组赋值的做法是错误的。为什么?例:char str120,str220; str1=“Hello!”; () str2=
4、str1; ()l字符数组定义l例:char c10, ch34;l字符数组的初始化2022-5-20 10二维字符数组l二维字符数组的初始化 例 char fruit7=Apple, Orange, Grape, Pear, Peach;fruit0fruit1fruit2fruit3fruit4Apple00Orange0Grape00Pear000Peach002022-5-20 11字符数组的引用l基本的字符串输入输出方式例: main() char c10=I, ,a,m, ,a, ,b,o,y; int i; for(i=0;i10;i+) printf(%c,ci); print
5、f(n);Iamaboy0123456789注意:由于本例使用字符为数组元素赋值的方法,并不能自动为字符串加上结束标志,所以就无法使用printf(%s,c);语句来输出字符串。2022-5-20 12字符数组的引用l字符串的输入输出l用%c的输入输出方式l用%s的输入输出方式例:main() char str5; int i; for(i=0;i5;i+) scanf(“%c”, &stri); for(i=0;i5;i+) printf(“%c”, stri);例:main() char str5; scanf(“%s”, str); printf(“%s”, str);说明:l用%s的输
6、入输出方式,scanf函数中仅使用字符数组名, 不需要加&。l需要注意的是输入的字符串长度应小于数组的长度。遇空格或回车输入结束,并自动加0 lscanf(“%s”,str); 不要写成&str,因为数组名str是地址。2022-5-20 13字符数组的引用l用“%s”输出时,遇0结束例:main( ) char a5=H,e,l,l,o; printf(“%s”,a);结果:Hello#-=*例:main( ) char a =“Hello”; printf(“%s”,a);结果:Hello2022-5-20 14字符数组的引用l数组中有多个0时,遇第一个结束例:main() char a=
7、h,e,l,0,l,o,0; printf(%s,a);输出:hel h e l 0 l o 02022-5-20 15字符数组的引用lscanf中,使用%s输入时遇空格或回车结束#include main() char a15,b5,c5; scanf(%s%s%s,a,b,c); printf(a=%snb=%snc=%sn,a,b,c); scanf(%s,a); printf(a=%sn,a);运行情况:输入:How are you? 输出:a=How b=are c=you?输入:How are you? 输出:a=HowH o w 0 a r e 0y o u ? 0 a15b5c
8、52022-5-20 16(A)scanf(%20s,s);(B)for(k=0;k17;k+) sk=getchar();(C)while(c=getchar()!=n) sk+=c;字符数组的引用思考:若准备将字符串“This is a string.”记录下来,错误的输入语句为:说明:在以上3种字符数组赋值操作方式中,A不能实现题目的要求。B和C虽然可以实现题目的要求,但使用起来也并不方便。2022-5-20 17小练习:1、下面是有关C语言字符数组的描述,其中错误的是(2019年3月)A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内
9、容不一定是字符串D)字符数组只能存放字符串2、有以下程序(2019年3月)#includemain() char s =(012xy); int i,n=0;for(i=0;si!=0;i+)if(si=a&si=z) n+;printf(%dn,n);程序运行后的输出结果是 A) 0 B) 2 C) 3 D) 5 2022-5-20 18小练习:3、以下程序用以删除字符串所有的空格,请填空(2019年3月)#include main() char s100=Our teacher teach C language!;int i,j;for(i=j=0;si!=0;i+)if(si!= ) s
10、j=si; j+; sj= 【1】 ; printf(%sn,s);2022-5-20 19常用的字符串处理函数l为了便于处理字符串,C语言为我们提供了一系列字符串处理函数,他们被包含在头文件string.h中。l字符串输出函数putsl格式:puts(字符数组)l功能:向显示器输出字符串,输出完成,自动换行。l说明:要输出的字符数组必须以0结束l字符串输入函数getsl格式:gets(字符数组)l功能:从键盘输入一个字符串存入字符数组中,以回车结束并自动加0。l说明:输入串长度应小于字符数组长度2022-5-20 20常用的字符串处理函数例:#include #include main( )
11、 char string80; printf(“Input a string:”); gets(string); /*使用gets为字符数组赋值*/ puts(string); /*使用puts输出字符数组的内容*/输入: How are you?输出: How are you?2022-5-20 21l字符串连接函数strcatl格式:strcat(字符数组1,字符数组2)l功能:把字符数组2连到字符数组1后面l返值:返回字符数组1的首地址l说明:字符数组1必须足够大;连接前,两串均以0结束; 连接后,串1的0被取消,新串最后加0。l字符串拷贝函数strcpyl格式:strcpy(字符数组1
12、,字符串2)l功能:将字符串2,拷贝到字符数组1中去l返值:返回字符数组1的首地址l说明:字符数组1必须足够大;拷贝时0被一同拷。常用的字符串处理函数2022-5-20 22常用的字符串处理函数lstrcpy与strcat举例#include #include void main() char dest 25; char blank= , c=C+, turbo=Turbo; strcpy(dest, turbo); strcat(dest, blank); strcat(dest, c); printf(%sn, dest);执行结果,输出:Turbo C+2022-5-20 23常用的字符
13、串处理函数l字符串比较函数strcmpl格式:strcmp(字符串1,字符串2)l功能:比较两个字符串l比较规则:对两个字符串从左向右逐个字符比较(用ASCII码),直到遇到不同字符或0为止l返值:返回int型整数l若字符串1字符串2, 返回正整数l若字符串1=字符串2, 返回零1.说明:字符串比较不能用“=”,必须用strcmp2022-5-20 24常用的字符串处理函数l字符串长度函数strlenl格式:strlen(字符数组)l功能:计算字符串长度l返值:返回字符串的实际长度,不包括0l例如:对于以下字符串,strlen(s)的值为:(1)char s10=A,0,B,C,0,D;(2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 字符数组和字符串ppt课件 字符 数组 字符串 ppt 课件
限制150内