程序设计基础教案212课时——字符数组.docx

上传人:lao****ou 文档编号:444743 上传时间:2023-11-18 格式:DOCX 页数:9 大小:30.71KB
下载 相关 举报
程序设计基础教案212课时——字符数组.docx_第1页
第1页 / 共9页
程序设计基础教案212课时——字符数组.docx_第2页
第2页 / 共9页
程序设计基础教案212课时——字符数组.docx_第3页
第3页 / 共9页
程序设计基础教案212课时——字符数组.docx_第4页
第4页 / 共9页
程序设计基础教案212课时——字符数组.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《程序设计基础教案212课时——字符数组.docx》由会员分享,可在线阅读,更多相关《程序设计基础教案212课时——字符数组.docx(9页珍藏版)》请在第一文库网上搜索。

1、教案序号21周次15授课形式新授授课章节名称字符数组教学目的会定义、引用、初始化字符数组教学重点定义、引用、初始化字符数组教学难点引用、初始化字符数组使用教具机房课外作业课后体会授课主要内容1.15.3字符数组用来存放字符数据的数组是字符数组,字符型数组中的每一个元素只能存放一个字符型数据。5.3.1字符数组的定义与初始化一维字符数组的定义格式:char数组名常量表达式例如:charc5;该语句定义了一个元素个数为5的一维字符数组,每个元素可存储一个字符。例如:cO=g;c1=U;c2=U;c3=d;c4=T;字符数组也可以在定义时初始化,例如:charc5=7o7oVd,!注意:(1)如果花

2、括号中提供的初值个数大于数组长度,则被当作语法错误处理。(2)如果初值个数小于数组长度,将只为数组的前几个元素赋初值,其余未赋值的元素将自动被赋以空字符如:0c1,2c3c4c5,6ccharc81=VoVo*dV!;good!000_II_数组状态如图5.7所示。图5.7数组状态例5.8字符数组的应用。从键盘输入由4个字符组成的单词,判断此单词是不是good,并输出判断结果。主要功能:判断输入的单词是否为预定单词#inc1udeintmain()(chartext4=,g,o,o,d;预定单词为goodcharh4;/h数组保存输入的单词inti,f1ag=O;设定标志f1ag,为0表示输入

3、单词为预定单词Primf(”请输入4个字母的单词:);for(i=0;i4;i+)/从键盘输入单词保存在h数组中scanf(,%c,hi);for(i=0;i4;i+)比较输入单词和预定单词的每个字母是否相同if(hi!=texti)break;并且提前退出循环)if(f1ag)输出比较结果Printf(这个单词不是good);e1sePrintf(这个单词是good);return0;)一次运行情况为:请输入4个字母的单词:abed/这个单词不是good另一次运行情况为:请输入4个字母的单词:good/这个单词是good5.3.2字符串和字符串结束标志c语言对字符串的处理必须通过字符数组进行

4、。字符串是用双引号括起来的字符序列,如:good,he11o!0,a=b+c,001234都是合法的字符串。前面第三章中已述:在内部存储时,编译程序自动在每个字符串的尾部加上一个串结束符0,因此,所需要的存储空间比字符串的字符个数多一个字节。如用s字符数组存储字符串“he11o”时,s数组的长度至少为6,即CharS6。它在内存中的存放形式如图5.8所示。s0s1s2s3s4s5he11O0图5.8A系统自动加的结束符注意:因为在字符串的最后有一个串结束符0,所以在处理字符串的过程中,一旦遇到特殊字符(T就表示已经到达字符串的末尾,即字符串结束。字符串的初始化有两种方式:(1)与字符数组的初始

5、化形式相同(但最后要人为地增加一个字符(T),如:chars6=,h,e7,o,0,chars=,h7e,1,T,o,0,;用字符串常量来使字符数组初始化(系统会自动增加一个串结束符,0),如:chars=,he11o,;也可以省略花括号,直接写成:chars=nhe11o;字符串的输入输出有两种方法:(1)逐个字符输入输出,可用循环来实现。如charchi4;inti;for(i=0;i4;i+)scanf(,%cch1i);for(i=0;i4;i+)printf(%c,ch1i);(2)将整个字符串一次输入或输出。如:chars=he11o”;或chars=he11o;printf(,%

6、sn,s);例5.9从键盘上输入字符串he11o”,并将其显示在显示屏幕上。主要功能:将整个字符串一次输入并输出#inc1ude#defineN6intmain()(charsN;scanf(%s,s);输入的字符串长度应小于N,系统自动在字符串后在0printf(1%sn,s);输出字符串时遇到0自动停止输出return0;)运行情况为:输入:he11o输出:he11o注意:输出字符串内容中不包含结束标志符0。5.3.3常用字符串处理函数c语言编译系统提供了许多有关字符串的处理函数,使得用户可以方便地对字符串进行处理。这里介绍几个常用的字符串函数,它们是放在函数库中的,在String.h头文

7、件中定义。程序中如果使用这些字符串函数,需要用inc1ude命令把string.h头文件包含到本文件中来。1 .字符串连接函数StrCat该函数用来使两个字符串连接成为一个字符串。格式:StrCaI(字符数组名1,字符数组名2);功能:将字符数组2的内容连接到字符数组1的后面,并在最后加一个(T,连接后的字符串存放在字符数组1中,因此字符数组1应该定义得足够大,以便容纳连接后的字符串。例5.10字符串的连接。主要功能:两个字符串的连接#inc1ude#inc1udeintmain()(charstr140=nThisgir1isn;charstr2=verybeautifu1.,;printf

8、(,%sn,strcat(str1,str2);return0;)运行后输出:Thisgir1isverybeautifu1.也即,StrCat(Str1,str2)函数执行后,Str1字符数组中的内容为:“Thisgir1isverybeautifu1,注意:在连接前两个字符串后面都有一个0,连接时将字符数组1后面的0,去掉。只在新字符串后面保留一个0、2 .字符串拷贝函数StIrCPy格式:StrCPy(字符数组名,字符串名);Stcpy(字符数组名1,字符数组名2);功能:将字符串内容拷贝到字符数组中去,将第一个字符数组中的相应字符覆盖,拷贝时字符串是一个字符一个字符地拷贝,直到遇到(T

9、字符为止,其中,0,字符也拷贝了。例如:(1)字符串内容拷到字符数组中charstr110;strcpy(str1,beautifu1*);执行后Str1字符数组中的内容为:“beautifu1”(2)字符数组2拷到字符数组1charstr114=,Thisgir1is,;charstr2=beautifu,;strcpy(str1,str2);执行后str1字符数组中内容如图5.9所示,即Str1数组中前10个字符被取代了,后面4个字符保持原状。此时str1中有两个(,如果用printf(,%sn,str1);输出3皿,只能输出第一个(T之前的内容,即beautifu1”,后面的内容不输出。

10、beautifu10is0图5.91空格注意:不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如下面两行都是不合法的:str1=uChina;str1=str2;而只能用Strcpy函数处理。用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。如下面是合法的:charb6,c1,c2;c1=A;c2=BnbO=m,ib1=,o,2=,r,ib3=,ib4=,n5=,g;3 .字符串比较函数StrCmP格式:StrCmP(字符串1,字符串2);功能:将两个字符串的对应字符自左至右逐个进行比较(按ASCn码值大小),直到出现不同字符或遇到W字符为止。如全部字符相同,则认为相等;若

11、出现不相同的字符,则以第一个不相同的字符的比较结果为准。例如,AA,the,thab,PIGdogo比较结果由函数值带回。(1)如果字符串I二字符串2,函数值为0。(2)如果字符串字符串2,函数值为一正整数。(3)如果字符串1字符串2,函数值为一负整数。例5.11输入6个长度小于10的字符串,将其中最大的打印出来。算法为:设str2数组用来存放每次比较后较大的那个字符串。第一次先将第一个字符串输入到str2数组。以后再先后输入5个字符串给Str1数组每次使str2与Str1比较,str2当中始终是当时最大的字符串。主要功能:输入6个长度小于10的字符串,将其中最大的打印出来#inc1ude#i

12、nc1udeintmain()(charstr110;charstr210;inti;scanf(%s,str2);输入str2字符串内容for(i=0;i5;i+)/循环5次Iscanf(,%s,str1);输入Str1字符串内容if(strcmp(str2,str1)0)/若str2str1strcpy(str2,str1);则将大字符串Str1拷贝到str2中)printf(,TheBiggeststringis:%sn,str2);输出最大字符串的内容return0;)运行情况为:China/Germany/Japan/Eng1and/Ita1y/FnmCe/TheBiggeststr

13、ingis:Japan程序中str2数组用来存放每次比较后较大的那个字符串。第一次先将第一个字符串输入到str2数组。以后再先后输入5个字符串给Str1数组每次使str2与Str1比较,str2当中始终是当时最大的字符串。注意:对两个字符串比较,不能用以下形式:if(str1=str2)Primf(两个字符串相等n”;而只能用if(strcmp(str1,str2)=0)Printf(两个字符串相等n”;4 .测字符串长度函数SEen格式:StrIen(字符串);StrIen(字符数组);功能:测试字符串长度函数,其函数值为字符串中的实际长度,不包括,0,在内。如:charstr10=,gir,;printf(%dn,str1en(str);Printfr%dn”,StrienCgirF);其结果都为4。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服