- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新编C语言程序设计教程第6章数组2
第6章 数组 6.3 字符数组和字符串 6.3.1 字符数组 6.3.2 字符串 6.3.3 字符串输入输出 6.3.4 字符串相关程序示例 6.4 综合示例:求大数的阶乘 6.3.1 字符数组 字符数组是元素类型为字符型的数组,既有一维字符数组,又有多维字符数组。数组具有的特征,字符数组也不例外。由于字符型的特殊性,在使用字符数组时需注意: 1.虽然初始化数组时可以用各种形式的字符型字面量,但要考虑程序的可读性。如有char ca[6]={C, 72, \111, \x4e, \x41, \n};语句时,字符型数组ca的各元素为 2. 字符型与整型的区别与联系。 例6-11 例6-11 输入由数字组成的一串字符,输出与这个数字串相对应的整数。如输入523回车(5,2,3),则输出523(五百二十三)。 分析:用字符数组存储这个数字串;用循环获得输入,遇到回车符时结束。为了便于处理,可在这个数字串的末尾加一个空字符(null)作为结束标志。 例6-11 6.3.2 字符串 前面指出,字符串就是用一对双撇号()括起来的一串字符型字面量。这样理解字符串不太确切。C语言规定,字符串必须以空字符\0结束。因此,字符串是用一对双撇号()括起来的以空字符\0结束的一串字符型字面量。 作为结束标志的空字符\0显然不能出现在字符串的中间,因为在字符串中只要遇到空字符\0,就认为字符串已经结束。 字符串 为简便在书写时经常忽略字符串的结束标志\0,但在使用时系统会自动在字符串后面加上结束标志。如字符串China的实际长度(包括空字符\0)为6,有效长度是5。 字符串 在C语言中常用字符数组存储字符串。存放在字符数组中的字符串分散成了一个个字符变量,因此很容易进行与字符串相关的操作,如查找某个字符是否包含在字符串等。 C语言中,字符串可以用来初始化字符数组。如char c[ ] = {China};或直接写成char c[ ] = China;。 注意 1. 上面的初始化语句与char c[ ] = {C,h,i,n,a};并不等价, 而与char c[6]={C,h,i,n,a,\0};等价(最后一个空字符可以省略而自动赋值为\0)。 2. 设c是一个长度为10的字符数组,则赋值语句c = China;并不正确, 用字符串直接给字符数组赋值的格式只能用于初始化语句。char c[ ] = China; 6.3.3 字符串的输入输出 用printf函数和scanf函数输入输出字符串时用格式符串“%s”。如有char c[] = China;,则语句printf(%s, c);的输出结果为China,在用printf函数输出字符串时需注意: 1.与格式符串“%s”对应的变量为数组名c,而非数组元素c[0] (c[0]是一个字符变量与格式符串“%c”相对应)。 2.字符串中的结束标志空字符\0并不输出。 注意: Now 输出字符串时,遇到结束标志空字符\0时输出就结束了。 字符串的输入 如有char c[ ] = I am ready!; scanf(%s, c) ,则从键盘输入China并回车后,数组c的状态为 一次输入多个字符串 一次输入多个字符串时,空格符可用来分隔字符串 如有char str0[10], str1[10], str2[10]; scanf(%s%s%s, str0, str1, str2); 则输入Are you ready?回车时,各个数组的状态为 专用的输入输出函数 标准函数库(stdio.h)中也为字符串提供了专用的输入输出函数:puts函数和gets函数。 puts函数的使用形式为: puts(字符数组变量); 其作用是将字符数组中存储的字符串输出到输出设备上。 如有char str[ ] =Henan\nChina;,则puts(str);的输出结果为:Henan China puts函数输出完字符串后会自动换行,也就是说puts(str);与printf(%s\n,str);等价。 gets函数 gets函数的使用形式为:gets(字符数组变量); 其作用是把输入设备输入的字符串存储到字符数组中。如有语句gets(str);,从键盘输入: Are you ready?回车 则字符数组str中的字符串为Are you ready?。也就是说gets函数认为空格符只是字符串中的一个普通字符,回车才是一个字符串输入结束的唯一标志,这是它与scanf函数的最大区别。 6.3.4 字符串相关程序示例 例6-12 有语句scanf(%d%d, m, n);,当用键盘输入23 52回车时,变量m,n的值分别为23和52。整个过程可简单地理解为:系统首先把来自键盘的输入放在一个字符数组中,遇到回车符
原创力文档


文档评论(0)