1 / 18
文档名称:

第13章 字符串及字符串操作.ppt

格式:ppt   页数:18页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第13章 字符串及字符串操作.ppt

上传人:燕赵才子 2011/7/19 文件大小:0 KB

下载得到文件列表

第13章 字符串及字符串操作.ppt

文档介绍

文档介绍:第13章字符串及字符串操作
在各种编程语言中,字符串的地位都十分重要,C语言中并没有提供“字符串”这个特定类型,而是以特殊字符数组的形式来存储和处理字符串,这种字符数组必须以空字符’\0’结尾,因此,也将这种特定字符数组称为C风格字符串,本章讨论字符串和字符串的一些处理函数。
C风格字符串
C风格字符串是字符数组的一种特例,这个“特”字体现在“以’\0’(空字符,null character)结尾”,如何声明创建一个C风格字符串时,如何使用C风格字符串,这是本节要解决的问题。
C风格字符串的声明
首先想到的方法是声明一个字符数组,而后对其中元素初始化,不过要保证最后一个元素是空字符’\0’,即:
char str[]={‘I’,’’,’L’,’o’,’v’,’e’,’’,’C’,’H’,’I’,’N’,’’A,’\0’};
还记得么?如果在数组声明时没有指定第1维的大小,编译器将根据初始化表达式执行决定数组的大小,对C风格字符串来说,这是种不错的方法,免得一个个字符去数。
上述声明方式看上去很麻烦,要一个字母一个字母地用单引号包裹起来,还要记着最末尾的空字符’\0’,实际上,在C语言中,还提供了另一种声明C风格字符串的方法――使用字符串常量,如:
char str[]=”I Love CHINA”;
C风格字符串内存中的表示
上面声明的str中,C风格字符串共有12个有效字符,但却占据了13个内存空间,编写一段代码来验证这个结论,见示例。
代码‑ C风格字符串占据的内存字节数SizeOfStr
<----------------------------------------------文件名:------------------------------------------------------>
#include <> /*使用printf要包含的头文件*/
#include <>
void main(void) /*主函数*/
{
char sz[]="I Love CHINA"; /*声明一个C风格字符串*/
printf("sz在内存中的大小为:%d",sizeof(sz)); /*输出sz占据的内存字节数*/
getch(); /*等待,按任意键继续*/
}
输出结果为:
sz在内存中的大小为:13
字符数组的输入输出
请注意:本节的标题没有写“C风格字符串的输入输出”,而是说“字符数组的输入输出”,实际上,C语言允许对字符数组进行整体的输入输出和元素访问,并不会检查其末尾是否为空元素,在本节学习中,读者应细心体会字符数组和C风格字符串在输入输出等方面的不同。
字符数组可以进行整体输入输出
普通数组不能进行整体输入输出,必须以元素为单位进行,而字符数组是个例外,来看一个例子,见示例:
代码‑字符串的整体输入输出StrInputOutput
<------------------------------------------文件名:-------------------------------------------------->
#include <> /*使用printf要包含的头文件*/
#include <>
void main(void) /*主函数*/
{
char sz[]="I Love CHINA"; /*声明一个C风格字符串*/
printf("%s\n",sz); /*对字符串进行整体输出*/
printf("请重新输入一个字符串,不多于12个字符\n"); /*提示用户重新输入一个字符串*/
scanf("%s",sz); /*读取新的输入*/
printf("修改后的字符串为:%s\n",sz); /*整体输出新的字符串*/
getch(); /*等待,按任意键继续*/
}
输出结果为:
I Love CHINA
请重新输入一个字符串,不多于12个字符
Hello World (键盘输入)
修改后的字符串为:Hello
使用gets函数读入整行输入
在接收输入时,空格和随后的字符都被舍弃掉了,那有没有一种方法能将空格和随后的字符一块读入呢?有,C语言提供了gets函数,见示例:
代码‑使用gets函数读取一整行到字符数组中FunctionGets
<------------------------------------------文件名:-------------------------------------------------->
#in

最近更新

保险运输合同(含紧急救援服务) 3页

信息技术产品采购合同范本集 3页

2025年度家庭保姆专业护理与家庭健康促进合同.. 38页

健康食品代理分销协议 3页

2025年度客户介绍佣金分成协议3篇 43页

2025年度实验室装修与实验室通风系统改造合同.. 43页

儿童乐园保育员岗位聘用标准合同 3页

充电桩场地租赁与充电桩充电效率优化合作协议.. 3页

光伏发电冲孔桩施工合作协议 3页

2025年度安全培训项目运营管理协议3篇 48页

党政机关会议现场布置及道具制作合同 3页

全国连锁餐饮品牌招商加盟合作协议 3页

2025年度学生校园交通安全设施建设合同3篇 41页

2025年度学校零星维修及校园文化墙建设合同3篇.. 42页

公共建筑节能改造工程合同范本 4页

2025年度子女离婚协议书及赡养费支付与调整机.. 127页

共享经济代偿服务合同样本 3页

养老服务机构财务外包服务合同模板 2页

2025年度夫妻间婚姻关系存续期间财产变更协议.. 40页

农业大棚建设与病虫害防治合作合同范本 3页

农业机械设备代理销售服务合同范本 4页

农业现代化项目贷款保证担保合同典范 3页

农业科技园区场地租赁保证金及项目合作合同 3页

2025年度大学生实习就业实习单位与高校就业政.. 47页

农产品加工厂房租赁合同范本标准 3页

2025年度多功能展厅设计与施工技术支持合同3篇.. 46页

农村信用社农户借款服务协议 3页

QC T 262-2024《汽车渗碳齿轮金相检验》 18页

桥梁建设协议书 5页

兰州市机动车停车场管理办法全文 11页