- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.4 字 符 数 组 ?C语言规定:用字符\0作为字符串的结束标志。 对上面的数组:char word[12]; 如已赋值: word[0]= C; word[1]= _; word[2]= L; word[3]= a; word[4]= n; word[5]= g; word[6]= u; word[7]= a; word[8]= g; word[9]= e‘; 再加上一条语句:word[10]= \0; 则:数组word中的内容就可以作为字符串整体输出: printf(%s, word); 7.4 字 符 数 组 ?比较如图所示字符数组中字符和字符串的存储方式: 注意:字符数组和字符串是两个不同的概念,字符串存放在字符数组中,字符串以\0作为结束标记。 7.4 字 符 数 组 7.4.1 字符数组的初始化 ?有两种初始化的方法。 ①逐一为数组中各元素指定初值字符,即分别对每个元素赋初值。例如: char word[10]={ C, _, L, a, n, g, u, a, g, e}; 或 char word[]={C, _, L, a, n, g, u, a, g, e}; ②将字符串赋给指定的数组,例如: char word[]={“C_language”}; /* ②中系统会自动在串后加’\0’,以表示字符串结束*/ 或 char word[11]={“C_Language”}; char word[11]= C_Language; char word[]=C_Language; 说明 方式(2)中C_Language是一个字符串,根据前面介绍的用\0作为字符串结束标志的方法,系统将自动地在最后一个字符后面加入一个\0字符,并把它一起存入字符数组中。而采用方式(1)则不存在这个问题,系统只是一一对应地将各个元素赋值。 在采用方式(2)进行初始化时,数组的元素个数应该足够大,以便能容纳下全部有用字符和‘\0’。上面的数组word虽然并未定义大小,但系统会自动给它定义为word[11]。也就是说,以下两种初始化方式是等价的: char word[]={“C_language”}; char word[11]={“C_language”}; 如果写成: char word[10]={“C_language”}; 那么会出现什么情况呢?本来是应该把10个字符赋给 word 数组,但是word数组只含10个元素,因此最后一个字符‘\0’未能放入数组中,而是存放到数组之后的存储单元中。也就是说,这个字符数组“溢出”。这就可能会破坏其他数据区或程序本身,这是危险的。 7.4 字 符 数 组 7.4.2 字符串的输入 ?字符串的输入方法:①初始化字符数组;②用输入函数。 ?用scanf()函数: 假定有:char name[9] ; (1)向数组元素name[0]输入一个字符: scanf(%c, name[0]); (2)向数组输入整个字符串: scanf(%s, name); 或: scanf(%s,name); ?注意:数组名代表数组的首地址。 对一维字符数组name,输入时可直接用:scanf(%s ,name); 7.4 字 符 数 组 ?使用scanf函数输入字符串时需注意: ①输入的字符串中不能包含有空格; ②输入字符串时两边不要用双引号括起来。 假如有: char name[9] ; scanf(%s, name); 若有输入: China word ? 结果: 只把“China”作为字符串输入了数组。 数组name中的字符如图所示。 注意:name[6]~name[8]的值未知。 7.4 字 符 数 组 ? scanf()函数的缺陷: 不能完整地读入含有空格、制表符等字符的字符串。 ?解决方案:用gets()函数。 gets()函数可读入包括有空格、制表符 等全部字符。以换行符作为结束。 例如有:char name[9]; gets(name); 若输入:Very hot? 结果: 数组name的元素如图所示。 7.4 字 符 数 组 7.4.3 字符串的输出 ①printf()函数输出数组元素或存放在字符数组中的字符串。 若数组name各元素的值为: 若:printf(%c, %s, name[0], name); 输出结果为: V,Very ②puts(),字符串输出函数。 可输
您可能关注的文档
- 第1章.老师您好章节(2200KB).ppt
- 第七章节参数估计课件(1234KB).ppt
- 第1章.牛顿第一定律(300KB).ppt
- 第1章.商末尾有0的除法.练习课(373KB).PPT
- 第七章节参数估计课件1章节(1623KB).ppt
- 第1章.师恩难忘课件用(633KB).ppt
- 第七章节仓储法律制度课件(1196KB).ppt
- 第1章.藤野先生1章节(356KB).ppt
- 第七章节产品制造企业及其企业会计课件(1036KB).ppt
- 第1章.藤野先生11章节(704KB).ppt
- 第2版电子课件office2003版C语言第2版第8章指针2003版(2134KB).ppt
- 第2版电子课件office2003版C语言第2版第9章结构2003版(1179KB).ppt
- 第2版电子课件office2003版C语言第2版第10章文件2003版(196KB).ppt
- 第2版电子课件office2003版C语言第2版第11章位运算2003版(230KB).ppt
- 第2波导章传输线(337KB).ppt
- 第2次课02文件的基本操作(229KB).ppt
- 第2次课课件(455KB).ppt
- 第2次课网络安全概述认识计算机网络安全技术(1483KB).ppt
- 第2单元5.北京喜获2008年奥运会主办权(1566KB).ppt
- 第七章节木结构工程课件(824KB).ppt
文档评论(0)