- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言程序考设计课件第9章
高级语言程序设计 第九章 字符串 内容提要 本章介绍字符串的存储与处理的相关知识,掌握以下内容: 字符串常量在内存中的存储方式,所占字节数 字符串如何利用字符数组和字符指针进行赋值、输入和输出 专门用于处理字符串的几个常用函数的原型及实现 字符串的应用很广泛,掌握以下两种应用并能举一反三解决其他相关问题: 读入字符串并执行相应的类型转换 判断回文 字符串的定义与存储 哪里需要字符串? 文本处理的对象是字符串,描述对象的某一特征的数据也常常是字符串(如:姓名、学号、地址、车牌等) C语言中不提供专门的字符串类型,借助于字符数组和字符指针存储和处理字符串 什么是字符串: 字符串是0个或多个有效字符序列 串长:字符串中的有效字符个数 在源程序中,字符串字面值常量以双引号(不计入串长)为定界符 存储空间大小:在所存的字符串后面自动加字符’\0’作为结束标志,因此存储空间大小=串长+1 字符串的定义与存储 字符串常量存储在const字符数组中,例如: china BASIC\a 区别以下两组: (1)空串(长度为0)与空格串 (长度为1) (2)字符常量’a’与字符串常量a 如果串中含有双引号字符,则双引号要用转义字符\ 字符串的赋值 C语言没有专门的字符串类型,字符串的操作是用一维字符数组和一级字符指针来实现的。 字符串字面值常量可以用来给字符数组或字符指针作初始化: char s1[8]=“china”; //将“china”的每一个字符(包括串结束符)逐一赋值给数组s1的各元素 char s2[ ]=3.1416; //相当于char s2[7]=3.1416; char * ps=structure; //系统首先创建const字符型数组存储structure,然后将存储空间的起始地址赋给字符指针变量ps 字符串的赋值 字符串字面值常量只能给字符指针赋值却不能给字符数组赋值: 例:char s1[8]; s1=china; char * ps; ps=structure; 串指针:字符串均有\0字符作为结束标志,故只要知道串的第一个字符的地址,就可以找到字符串。上例中的串指针常量s1和串指针变量ps都可代表字符串 再论一维字符数组名的3种含义, 例:char s1[8]=china; (1)代表第一个数组元素的地址,例:printf(%c\n,*s1); (2)代表整个数组空间,例:printf(%d\n,sizeof(s1)); (3)代表字符串,例:printf(%s\n,s1); 字符串的输入/输出 字符串的输入和输出有3种基本方法: 例如有定义:char a[10],b[10],c[10]; char i; 方法(1):利用格式控制字符%c用循环逐字符处理,例: for (i=0;i10;i++) scanf(“%c”,a[i]); //要加取地址符 for (i=0;i10;i++) printf(“%c”,a[i] ); //不能加取地址符 方法(2):利用格式控制字符%s整体处理字符串,例: scanf(“%s%s%s”,a,b,c); //输入3个字符串,空白符分隔 printf(“%s-%s-%s\n”,a,b,c); //输出3个字符串 方法(3):利用系统提供的串输入和输出函数处理 gets(a); //输入字符串,允许输入带空格的串 puts(a); //输出字符串,并自动换行 字符串的输入/输出 注意:用字符指针也可操作字符串,但是必须保证每一种操作时指针都是有确定地址的,避免使用野指针 例:char *ps; gets(ps); 字符串的输入和输出几种方法的比较与分析: 方法(1)比较麻烦,一般很少使用 输入:scanf(“%s”,a);与gets(a);相比,前者读入串时以空白符(空格、Tab、回车),故无法读入含空格的串;后者可以读入含空格的串 输出:printf(“%s”,a);与puts(a);相比,前者一次可以输出若干个字符串;后者一次只能输出一个串并自动换行 字符串处理函数的原型 以下是字符串处理函数原型,包含在系统头文件string.h中,常用以下6个: (1)unsigned int strlen(const char *s); (2)char* strcpy(char *s1,const char *s2); (3)char* strcat(char *s1,const char *s2); (4)int strcmp(const char *s1,const char *s2); (5)char* strupr(char *s); (6)char* strlwr(char *s)
文档评论(0)