网站大量收购独家精品文档,联系QQ:2885784924

第九字符串.pptVIP

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九字符串

第九章 字符串 9.1 问题的提出与程序示例 9.2 字符串的定义 9.3 字符数组与字符串 9.4 字符型指针变量与字符串 9.5 字符串处理函数 9.6 字符串数组 9.7* 命令行参数 9.1 问题的提出与程序示例 在实际使用中,我们经常需要对一系列有一定 关联的字符序列进行整体处理,例如输出提示信息 时常用的“printf(”请输入 10个整数: “);”语句就是 将一个字符序列进行整体输出。这些字符序列分开 看是一个个独立的字符,但是我们总希望将它们合 在一起进行整体处理。但是在已经学习的C语言数 据类型中没有一种数据类型是用来描述作为一个整 体的字符序列的,那么作为整体输入、输出或做其 它处理的字符序列如何表示并存放呢?这就是本章 要介绍的“字符串”。请看以下例子。 9.1 问题的提出与程序示例 【例9-1】编写一个函数fun( ),其功能是将小写字母表 示的“hello”转换为大写表示的“HELLO”并输出转换结 果,要求小写字母表示的“hello”以参数的形式传递给 该函数。 #include stdio.h void fun(char a0, char a1, char a2, char a3, char a4) { a0 = a0 - 32; a1 = a1- 32; a2 = a2 - 32; a3 = a2 - 32; a4 = a4 - 32; printf(%c%c%c%c%c\n, a0, a1, a2, a3, a4); } 9.1 问题的提出与程序示例 说明:运行结果符合题目要求,也就是说运 用我们已经掌握的数组和函数知识可以解决该问 题,但是设想如果这个字符序列很长,远远不止 5个字符,那我们在定义fun( )函数时岂不要传 递很多参数,这显然使问题复杂化,不符合C语 言简洁高效的特性。解决问题的方法就是我们应 该将整个字符序列看作一个整体,并且标明这个 整体何时结束,于是引入了字符串的概念,修改 后的程序如下所示。 9.1 问题的提出与程序示例 #include stdio.h void fun(char a[ ]) { char i; for(i=0; i5; i++) a[i] = a[i] - 32; printf(%s\n, a); } void main( ) { char a[6]={ h, e, l, l, o, \0}; printf(转换前: %s , a); printf(转换后:); fun(a); } 9.2 字符串的定义 1. C语言对字符串的约定 在C语言中,字符串是用一对双引号括起来的 字符序列,其中有零个或多个字符,并且规定以 ‘\0’作为字符串的结束标志。‘\0’是转义字符,其 ASCII码值是0。 ‘\0’占用一个字节的内存空间,但 是不计入字符串的实际长度。 例如“Hello world” 是字符串常量。一对空的双 引号也是字符串常量,称为空串。空串的长度是0, 但在内存中占用1个字节的存储空间。 9.2 字符串的定义 2. C语言中字符串常量给出的是地址值 字符串常量以一维字符数组的形式在内存 空间中存放,这些数组虽然没有名字,但C编 译系统却以字符串常量的形式给出存放每一个 字符串的存储空间的首地址。 9.2 字符串的定义 例如,有以下定义: char *p, s[10]; 则以下赋值是不合法的:s = China; 字符串常量“China”在赋值过程中给出的是它在 内存中所占的一串连续存储单元的首地址,而前面数 组一章已经介绍过,数组名s是常量,在定义数组时 系统已经为其分配了固定的存储空间,s不可以再赋 值为另一个存储空间。而以下两种赋值方式是合法的: 第一种:char s[10] = China; 第二种:char *p; p = China; 9.3 字符数组与字符串 9.3.1 字符数组的定义 字符数组是用来存放字符型数据的数组,其定 义方式与数值型数组的定义方式相同,只是此时数 组的数据类型是字符型(char)。字符数组的定义 形式为: 一维字符数组定义形式为: char 数组名[常量表达式]; 二维字符数组定义形式为: char 数组名[常量表达式1][常量表达式2]; 9.

文档评论(0)

1234554321 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档