C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第9章091115.ppt

C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第9章091115.ppt

ID:50043759

大小:648.50 KB

页数:18页

时间:2020-03-08

C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第9章091115.ppt_第1页
C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第9章091115.ppt_第2页
C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第9章091115.ppt_第3页
C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第9章091115.ppt_第4页
C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第9章091115.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 朱立华 王立柱 C语言程序设计课件第9章091115.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计2021/7/251第九章字符串主讲:计算机学院朱立华内容提要本章介绍字符串的存储与处理的相关知识,掌握以下内容:字符串常量在内存中的存储方式,所占字节数字符串如何利用字符数组和字符指针进行赋值、输入和输出专门用于处理字符串的几个常用函数的原型及实现字符串的应用很广泛,掌握以下两种应用并能举一反三解决其他相关问题:读入字符串并执行相应的类型转换判断回文2021/7/253字符串的定义与存储哪里需要字符串?文本处理的对象是字符串,描述对象的某一特征的数据也常常是字符串(如:姓名、学号、地址、车牌等)C语言中不提供专门的字符串类型,借助于字符数组和字符指针存储和处

2、理字符串什么是字符串:字符串是0个或多个有效字符序列串长:字符串中的有效字符个数在源程序中,字符串字面值常量以双引号(不计入串长)为定界符存储空间大小:在所存的字符串后面自动加字符’’作为结束标志,因此存储空间大小=串长+1指系统允许使用的字符,包括字母、数字字符、专用字符和转义字符2021/7/254字符串的定义与存储字符串常量存储在const字符数组中,例如:"china""BASICa"区别以下两组:(1)空串""(长度为0)与空格串""(长度为1)(2)字符常量’a’与字符串常量"a"如果串中含有双引号字符,则双引号要用转义字符"chinaBASICa

3、aa2021/7/255字符串的赋值C语言没有专门的字符串类型,字符串的操作是用一维字符数组和一级字符指针来实现的。字符串字面值常量可以用来给字符数组或字符指针作初始化:chars1[8]=“china”;//将“china”的每一个字符(包括串结束符)逐一赋值给数组s1的各元素chars2[]="3.1416";//相当于chars2[7]="3.1416";char*ps="structure";//系统首先创建const字符型数组存储"structure",然后将存储空间的起始地址赋给字符指针变量pss1chinastructureps2021

4、/7/256字符串的赋值字符串字面值常量只能给字符指针赋值却不能给字符数组赋值:例:chars1[8];s1="china";char*ps;ps="structure";串指针:字符串均有字符作为结束标志,故只要知道串的第一个字符的地址,就可以找到字符串。上例中的串指针常量s1和串指针变量ps都可代表字符串再论一维字符数组名的3种含义,例:chars1[8]="china";(1)代表第一个数组元素的地址,例:printf("%c",*s1);(2)代表整个数组空间,例:printf("%d",sizeof(s1));(3)代表字符串,例:printf("%s

5、",s1);错误,字符数组名s1是指针常量,不能被赋值正确,将串常量structure存储空间的起始地址赋给字符指针变量ps2021/7/257字符串的输入/输出字符串的输入和输出有3种基本方法:例如有定义:chara[10],b[10],c[10];chari;方法(1):利用格式控制字符%c用循环逐字符处理,例:for(i=0;i<10;i++)scanf(“%c”,&a[i]);//要加取地址符for(i=0;i<10;i++)printf(“%c”,a[i]);//不能加取地址符方法(2):利用格式控制字符%s整体处理字符串,例:scanf(“%s%s%s”,a

6、,b,c);//输入3个字符串,空白符分隔printf(“%s-%s-%s”,a,b,c);//输出3个字符串方法(3):利用系统提供的串输入和输出函数处理gets(a);//输入字符串,允许输入带空格的串puts(a);//输出字符串,并自动换行逐字符输入逐字符输出数组名已是地址,不能再加取地址符&函数原型char*gets(char*ps);可读入带空格的字符串,存入指针参量指向的字符数组,并将换行符转为串结束符,函数返回值是串指针ps。函数原型intputs(constchar*ps);在显示器上输出字符串ps,串结束符被译为换行,函数返回值是换行符的代码

7、10,函数执行失败时的函数返回值是-1。2021/7/258字符串的输入/输出注意:用字符指针也可操作字符串,但是必须保证每一种操作时指针都是有确定地址的,避免使用野指针例:char*ps;gets(ps);字符串的输入和输出几种方法的比较与分析:方法(1)比较麻烦,一般很少使用输入:scanf(“%s”,a);与gets(a);相比,前者读入串时以空白符(空格、Tab、回车),故无法读入含空格的串;后者可以读入含空格的串输出:printf(“%s”,a);与puts(a);相比,前者一次可以输出若干个字符串;后者

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。