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





《字符数组与字符串处理函数.ppt》由会员分享,可在线阅读,更多相关《字符数组与字符串处理函数.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十二讲、第十二讲、字符数组与字符串处理函数字符数组与字符串处理函数下一页教学目的教学目的1 1、掌握字符数组的定义、初始化、引用、掌握字符数组的定义、初始化、引用2 2、掌握字符数组的输入与输出、掌握字符数组的输入与输出3 3、掌握字符串处理函数、掌握字符串处理函数下一页教学内容教学内容1、字符数组的定义和使用2、字符数组的初始化3、字符串的输入和输出4、字符串处理函数5、程序举例教材分析教材分析教学重点:l字符数组的输入与输出l字符串处理的算法教学难点:l字符串处理函数l字符串处理的算法12.1 字符数组的定义和使用字符数组的定义和使用字符数组定义的一般形式:字符数组定义的一般形式:字符数
2、组定义的一般形式:字符数组定义的一般形式:charchar 数组名数组名数组名数组名 数组长度数组长度数组长度数组长度;例如:例如:例如:例如:char c10;char c10;说明:说明:说明:说明:字符型和整型是通用的,因此定义也可改为字符型和整型是通用的,因此定义也可改为字符型和整型是通用的,因此定义也可改为字符型和整型是通用的,因此定义也可改为 int c10;int c10;但应注意它们占用的存储空间不同。但应注意它们占用的存储空间不同。但应注意它们占用的存储空间不同。但应注意它们占用的存储空间不同。实际应用中,可以用无符号整型数组来代替字符数组。实际应用中,可以用无符号整型数组来
3、代替字符数组。实际应用中,可以用无符号整型数组来代替字符数组。实际应用中,可以用无符号整型数组来代替字符数组。例如:例如:例如:例如:unsigned int c10;unsigned int c10;可以代替可以代替可以代替可以代替 int c10;int c10;1010个元素个元素个元素个元素占占占占1010个字个字个字个字节节节节在在在在TurboCTurboC中中中中1010个整数占个整数占个整数占个整数占2020个字节个字节个字节个字节下一页12.2 字符数组的初始化字符数组的初始化1 1 1 1、用字符常量对字符数组进行初始化用字符常量对字符数组进行初始化用字符常量对字符数组进行
4、初始化用字符常量对字符数组进行初始化例如:例如:例如:例如:char str 8=,p,r,o,g,r,a,mchar str 8=,p,r,o,g,r,a,m或:或:或:或:char str =,p,r,o,g,r,a,mchar str =,p,r,o,g,r,a,m或:或:或:或:str0=,str1=p,str2=r,str3=o,str4=g,str0=,str1=p,str2=r,str3=o,str4=g,str5=r,str6=a,str7=mstr5=r,str6=a,str7=m说明:说明:说明:说明:如果只给数组的一部分字符元素初始化,没有指定初值的元如果只给数组的一部分
5、字符元素初始化,没有指定初值的元如果只给数组的一部分字符元素初始化,没有指定初值的元如果只给数组的一部分字符元素初始化,没有指定初值的元素默认初值为空字符素默认初值为空字符素默认初值为空字符素默认初值为空字符(ASCII(ASCII码为码为码为码为0 0的字符的字符的字符的字符)。注意,。注意,。注意,。注意,空空空空字符与字符与字符与字符与空空空空格格格格字符字符字符字符(ASCII(ASCII码码码码32)32)不同。不同。不同。不同。下一页12.2 字符数组的初始化字符数组的初始化2 2 2 2、用字符的、用字符的、用字符的、用字符的ASCIIASCIIASCIIASCII码值对字符数组
6、码值对字符数组码值对字符数组码值对字符数组 进行初始化(了解)进行初始化(了解)进行初始化(了解)进行初始化(了解)例如:例如:例如:例如:char str8=112,114,111,103,114,97,109,0;char str8=112,114,111,103,114,97,109,0;3 3、用字符串、用字符串、用字符串、用字符串(用双引号括着的字符序列用双引号括着的字符序列用双引号括着的字符序列用双引号括着的字符序列)对字符数组进行初始化对字符数组进行初始化对字符数组进行初始化对字符数组进行初始化例如:例如:例如:例如:char str =“program”;char str =“
7、program”;该方式赋予数组该方式赋予数组该方式赋予数组该方式赋予数组8 8个字符个字符个字符个字符,最后一个为最后一个为最后一个为最后一个为“00”,”,而而而而char str=p,r,o,g,r,a,m;char str=p,r,o,g,r,a,m;占内存占内存占内存占内存7 7个字节。个字节。个字节。个字节。字符串结束标字符串结束标字符串结束标字符串结束标志志志志(自动加上自动加上自动加上自动加上)C C语言的字符串称又语言的字符串称又语言的字符串称又语言的字符串称又0 0字符串,即最后一元素值为字符串,即最后一元素值为字符串,即最后一元素值为字符串,即最后一元素值为0 0的字符数
8、组。的字符数组。的字符数组。的字符数组。下一页12.3 字符串的输入和输出字符串的输入和输出 调用调用调用调用scanfscanf函数时,空格和换行符都作为字符串的分隔符而不函数时,空格和换行符都作为字符串的分隔符而不函数时,空格和换行符都作为字符串的分隔符而不函数时,空格和换行符都作为字符串的分隔符而不能读入。能读入。能读入。能读入。getsgets函数读入由终端键盘输入的字符函数读入由终端键盘输入的字符函数读入由终端键盘输入的字符函数读入由终端键盘输入的字符(包括空格符包括空格符包括空格符包括空格符),直,直,直,直至读入换行符为止,但换行符并不作为串的一部分存入。至读入换行符为止,但换行
9、符并不作为串的一部分存入。至读入换行符为止,但换行符并不作为串的一部分存入。至读入换行符为止,但换行符并不作为串的一部分存入。1 1 1 1、逐个字符输入逐个字符输入逐个字符输入逐个字符输入/输出输出输出输出 (1)(1)在标准输入在标准输入在标准输入在标准输入/输出函数输出函数输出函数输出函数printfprintf和和和和scanfscanf中使用中使用中使用中使用%c%c格式描述符格式描述符格式描述符格式描述符 (2)(2)使用使用使用使用getchargetchar和和和和putcharputchar函数。函数。函数。函数。下一页P126 P126【例【例【例【例6-236-23】逐个
10、字符输入逐个字符输入逐个字符输入逐个字符输入/输出输出输出输出#include#includemain()main()int i;int i;char str10;char str10;for(i=0;i9;i+)for(i=0;i9;i+)scanf(%c,&stri);scanf(%c,&stri);stri=0;stri=0;for(i=0;i9;i+)for(i=0;i9;i+)printf(%c,stri);printf(%c,stri);12.3 字符串的输入和输出字符串的输入和输出stri=getchar();stri=getchar();putchar(stri);putcha
11、r(stri);下一页12.3 字符串的输入和输出字符串的输入和输出2 2 2 2、字符串整体输入字符串整体输入字符串整体输入字符串整体输入/输出输出输出输出(1)(1)在标准输入在标准输入在标准输入在标准输入/输出函数输出函数输出函数输出函数printfprintf和和和和scanfscanf中使用中使用中使用中使用%s%s格式描述符格式描述符格式描述符格式描述符P127 P127【例【例【例【例6-246-24】字符串整体输入字符串整体输入字符串整体输入字符串整体输入/输出输出输出输出#include#includemain()main()int i;int i;char str10;ch
12、ar str10;scanf(“%s”,str);scanf(“%s”,str);printf(“%sn”,str);printf(“%sn”,str);printf(“%6sn”,str);printf(“%6sn”,str);/*/*字符串多于字符串多于字符串多于字符串多于6 6个个个个,全部输出全部输出全部输出全部输出*/*/printf(“%-.6sn”,str);printf(“%-.6sn”,str);/*/*只输出前只输出前只输出前只输出前6 6个字符,多余不输个字符,多余不输个字符,多余不输个字符,多余不输*/*/l lstrstr为字符数组名,代表该数组的起为字符数组名,代表
13、该数组的起为字符数组名,代表该数组的起为字符数组名,代表该数组的起始地址。始地址。始地址。始地址。l l输入时,系统自动在每个字符串后输入时,系统自动在每个字符串后输入时,系统自动在每个字符串后输入时,系统自动在每个字符串后加入结束符加入结束符加入结束符加入结束符 00。l l若同时输入多个字符串,则以空格若同时输入多个字符串,则以空格若同时输入多个字符串,则以空格若同时输入多个字符串,则以空格或回车符分隔。或回车符分隔。或回车符分隔。或回车符分隔。下一页例如例如例如例如char str15,str25,str35;char str15,str25,str35;scanf(“%s%s%s”,s
14、tr1,str2,str3);scanf(“%s%s%s”,str1,str2,str3);输入数据:输入数据:输入数据:输入数据:How are youHow are you输入数据后输入数据后输入数据后输入数据后str1,str2,str3 str1,str2,str3 数组状态如下图:数组状态如下图:数组状态如下图:数组状态如下图:str1str1 str2str2 str3str3数组名具有双重功能,除了表示名称外,还表示该数组的首数组名具有双重功能,除了表示名称外,还表示该数组的首数组名具有双重功能,除了表示名称外,还表示该数组的首数组名具有双重功能,除了表示名称外,还表示该数组的首
15、地址,所以用地址,所以用地址,所以用地址,所以用scanfscanf函数不用在前面加函数不用在前面加函数不用在前面加函数不用在前面加“&”“&”;字符串只能在变;字符串只能在变;字符串只能在变;字符串只能在变量定义时初始化,不能在程序语句中赋值。量定义时初始化,不能在程序语句中赋值。量定义时初始化,不能在程序语句中赋值。量定义时初始化,不能在程序语句中赋值。H Ho oww00a ar re e00y yo ou u0012.3 字符串的输入和输出字符串的输入和输出下一页12.4 字符串处理函数字符串处理函数字符串处理函数为库函数,在程序开头应加预编译命令字符串处理函数为库函数,在程序开头应加
16、预编译命令字符串处理函数为库函数,在程序开头应加预编译命令字符串处理函数为库函数,在程序开头应加预编译命令#include#include以下函数参数中的以下函数参数中的以下函数参数中的以下函数参数中的str,str1,str2str,str1,str2均为字符均为字符均为字符均为字符数组名。数组名。数组名。数组名。(1 1)putsputs(strstr););););/*/*字符串输出函数字符串输出函数字符串输出函数字符串输出函数 put string*/*/输出指定字符串。输出指定字符串。输出指定字符串。输出指定字符串。参数可以为字符串常量。输出的字符参数可以为字符串常量。输出的字符参数
17、可以为字符串常量。输出的字符参数可以为字符串常量。输出的字符串可以包含转义字符。串可以包含转义字符。串可以包含转义字符。串可以包含转义字符。(2 2)getsgets(strstr););););/*/*字符串输入函数字符串输入函数字符串输入函数字符串输入函数 get string*/*/从终端输入一个字符串到字符数组,并返回字符数组的起从终端输入一个字符串到字符数组,并返回字符数组的起从终端输入一个字符串到字符数组,并返回字符数组的起从终端输入一个字符串到字符数组,并返回字符数组的起始地址。始地址。始地址。始地址。注意:如果输入字符串有空格,则必须用注意:如果输入字符串有空格,则必须用注意:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符 数组 字符串 处理 函数

限制150内