字符数组与字符串处理函数.ppt

上传人:小飞机 文档编号:4971876 上传时间:2023-05-26 格式:PPT 页数:20 大小:342.61KB
返回 下载 相关 举报
字符数组与字符串处理函数.ppt_第1页
第1页 / 共20页
字符数组与字符串处理函数.ppt_第2页
第2页 / 共20页
字符数组与字符串处理函数.ppt_第3页
第3页 / 共20页
字符数组与字符串处理函数.ppt_第4页
第4页 / 共20页
字符数组与字符串处理函数.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《字符数组与字符串处理函数.ppt》由会员分享,可在线阅读,更多相关《字符数组与字符串处理函数.ppt(20页珍藏版)》请在三一办公上搜索。

1、第十二讲、字符数组与字符串处理函数,教学目的,1、掌握字符数组的定义、初始化、引用2、掌握字符数组的输入与输出3、掌握字符串处理函数,教学内容,1、字符数组的定义和使用2、字符数组的初始化3、字符串的输入和输出4、字符串处理函数5、程序举例,教材分析,教学重点:字符数组的输入与输出字符串处理的算法教学难点:字符串处理函数字符串处理的算法,12.1 字符数组的定义和使用,字符数组定义的一般形式:char 数组名数组长度;例如:char c10;说明:字符型和整型是通用的,因此定义也可改为 int c10;但应注意它们占用的存储空间不同。实际应用中,可以用无符号整型数组来代替字符数组。例如:uns

2、igned int c10;可以代替 int c10;,10个元素占10个字节,在TurboC中10个整数占20个字节,12.2 字符数组的初始化,1、用字符常量对字符数组进行初始化例如:char str 8=,p,r,o,g,r,a,m或:char str=,p,r,o,g,r,a,m或:str0=,str1=p,str2=r,str3=o,str4=g,str5=r,str6=a,str7=m说明:如果只给数组的一部分字符元素初始化,没有指定初值的元素默认初值为空字符(ASCII码为0的字符)。注意,空字符与空格字符(ASCII码32)不同。,12.2 字符数组的初始化,2、用字符的ASC

3、II码值对字符数组 进行初始化(了解)例如:char str8=112,114,111,103,114,97,109,0;3、用字符串(用双引号括着的字符序列)对字符数组进行初始化例如:char str=“program”;该方式赋予数组8个字符,最后一个为“0”,而char str=p,r,o,g,r,a,m;占内存7个字节。,字符串结束标志(自动加上),C语言的字符串称又0字符串,即最后一元素值为0的字符数组。,12.3 字符串的输入和输出,调用scanf函数时,空格和换行符都作为字符串的分隔符而不能读入。gets函数读入由终端键盘输入的字符(包括空格符),直至读入换行符为止,但换行符并不

4、作为串的一部分存入。1、逐个字符输入/输出(1)在标准输入/输出函数printf和scanf中使用%c格式描述符(2)使用getchar和putchar函数。,P126【例6-23】逐个字符输入/输出#includemain()int i;char str10;for(i=0;i9;i+)scanf(%c,12.3 字符串的输入和输出,stri=getchar();,putchar(stri);,12.3 字符串的输入和输出,2、字符串整体输入/输出(1)在标准输入/输出函数printf和scanf中使用%s格式描述符P127【例6-24】字符串整体输入/输出#includemain()int

5、 i;char str10;scanf(“%s”,str);printf(“%sn”,str);printf(“%6sn”,str);/*字符串多于6个,全部输出*/printf(“%-.6sn”,str);/*只输出前6个字符,多余不输*/,str为字符数组名,代表该数组的起始地址。输入时,系统自动在每个字符串后加入结束符0。若同时输入多个字符串,则以空格或回车符分隔。,例如char str15,str25,str35;scanf(“%s%s%s”,str1,str2,str3);输入数据:How are you输入数据后str1,str2,str3 数组状态如下图:str1 str2 st

6、r3数组名具有双重功能,除了表示名称外,还表示该数组的首地址,所以用scanf函数不用在前面加“&”;字符串只能在变量定义时初始化,不能在程序语句中赋值。,12.3 字符串的输入和输出,12.4 字符串处理函数,字符串处理函数为库函数,在程序开头应加预编译命令#include以下函数参数中的str,str1,str2均为字符数组名。(1)puts(str);/*字符串输出函数 put string*/输出指定字符串。参数可以为字符串常量。输出的字符串可以包含转义字符。(2)gets(str);/*字符串输入函数 get string*/从终端输入一个字符串到字符数组,并返回字符数组的起始地址。

7、注意:如果输入字符串有空格,则必须用gets而不能用scanf!,12.4 字符串处理函数,(3)strcat(str1,str2);/*字符串合并函数 string coalition*/把str2连接到 str1的后面,结果放在str1中,函数返回值为str1地址.例如:char str130=“Peoples Republic of”;char str2=“China”;printf(“%s”,strcat(str1,str2);输出结果:Peoples Republic of China说明:str1必须足够大,连接前两个字符串后面都有一个“0”,连接时取消str1后面的“0”,只在新

8、串最后保留一个“0”。,12.4 字符串处理函数,(4)strcpy(str1,str2);/*字符串拷贝 string copy*/将str2复制到str1中,实际上完成字符串的赋值操作。说明:(1)str1必须足够大;(2)复制时连同字符串后面的“0”一起复制到str1中;(3)不能用赋值语句将一个字符串常量或字符数组直接赋值给一个 字符数组。例如:str1=“China”;str1=str2;是不合法的;(4)str1必须是数组名,str2可以是字符数组名,也可以是字符串常量。例如:char str120;char str2=“China”;则,strcpy(str1,str2)与 st

9、rcpy(str1,“China”)作用相同。,12.4 字符串处理函数,(5)strcmp(str1,str2);/*字串比较 string compare*/比较str1和str2,若两者相同,返回函数值为0;若str1大于str2,返回函数值为一个正整数;若str1小于str2,返回函数值为一个负整数。说明:对两个字符串自左至右逐个字符比较(按ASCII码值大小比较),知道出现不同的字符或遇到“0”为止。如果,全部字符相同,则认为相等;如果出现不相同的字符,则以第一个不相同的字符为依据确定字符串的大小。,12.4 字符串处理函数,(6)strlen(str);/*字符串长度 string

10、 length*/函数值为字符串实际长度,不包括“0”。例如:char str=“China”;printf(“%d”,strlen(str);输出结果5(7)strlwr(str);/*字符串大写转小写 string lowercase*/把str中的大写字母转换成小写字母,并存入str。str必须为字符数组,不能是字符串常量。(8)strupr(str);/*字符串小写转大写 string uppercase*/把str中小写字母转换成大写字母,并存入str。str必须为字符数组,不能是字符串常量。,char s6=CHINA;printf(%s,strlwr(s);/正确 printf(

11、%s,strlwr(CHINA);/错误 为什么?,12.4 字符串处理函数,P130【例6-26】.将字符数组中的字符串按逆序存放后输出#include#includemain()int i,j;char t,ch80;gets(ch);/*等待用户从键盘输入一个字符串*/puts(ch);/*显示字符串*/for(i=0,j=strlen(ch)-1;ij;i+,j-)/*字符串逆序处理*/t=chi;chi=chj;chj=t;puts(ch);/*显示字符串*/,12.5 程序举例,例1 统计输入字符串中字符“x”出现的次数.,#include#includeint main()cha

12、r str100;int n=0,i=0;gets(str);/*等待用户从键盘输入一个字符串*/while(stri!=0)/*统计x在str中出现的次数*/if(stri+=x)n+;printf(“字符x出现的次数是%dn,n);,if(stri=x)n+;i+;,12.5 程序举例,例2 从键盘输入N个字符串(每个字符串不超过80个字符),然后把它们按由小到大的顺序排列并输出。,#define N 5#include#include void main()int i;char strN80,temp80;for(i=0;i0)/*小者交换于stri*/strcpy(temp,stri);strcpy(stri,strj);strcpy(strj,temp);printf(“排序结果:n);for(i=0;i5;i+)printf(%sn,stri);,小结,1、字符串的结束标记02、字符串的输入与输出:gets()、puts()3、字符串处理函数:strcat(),strcpy(),strcmp(),strlen()strlwr(),strupr(),

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号