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

第四讲-数组.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲-数组

§ 4.5.2 字符数组的输入输出 1.逐个字符的输入和输出 采用格式化输入和输出函数的“%c”格式符与循环配合来实现单个字符的输入和输出。 输入格式: scanf(%c,字符数组元素) 输出格式: printf(%c,字符数组元素) void main( ) { char s[7],name[5][5]; int i,j; printf(input data:); for(i=0;i7;i++) scanf(%c,s[i]); /* 字符输入 */ for(i=0;i=4;i++) for(j=0;j5;j++) scanf(%c,name[i][j]); /* 字符输入 */ printf(\n display data:); for(i=0;i7;i++) printf(%c,s[i]); /* 字符输出 */ for(i=0;i=4;i++) { for(j=0;j5;j++) printf(%c,name[i][j]); /* 字符输出 */ printf( ); } printf(\n); } 格式化输入是缓冲读。必须在接受到“回车”时,scanf才开始读取数据。读字符数据时,空格、回车都保存进字符数组。 如果按“回车”键时,输入的字符少于scanf循环读取的字符时,scanf继续等待用户将剩下的字符输入;如果按“回车”键时,输入的字符多于scanf循环读取的字符时,scanf循环只将前面的字符读入。 逐个读入字符结束后,不会自动在字符数组末尾加\0。如name[0]包含的字符为 、s、t、r、i等5个字符。所以输出时,最好也使用逐个字符输出,字符输出的循环控制次数只能由用户控制。 说明 § 4.5.2 字符数组的输入输出 2、字符串(即整串)的输入和输出 采用格式化输入和输出函数的“%c”格式符与循环配合来实现单个字符的输入和输出。 输入格式: scanf(%s,字符数组名字) 输出格式: printf(%s,字符数组名字) #include stdio.h void main( ) { char s1[]=How are you!,s2[4]; char ss[5][4]; int i; printf(please input 5 string:\n); for(i=0;i=4;i++) scanf(%s,ss[i]); /* ss[i]可以看成是一个含有5个元素的一维数组名字*/ printf(\nplease input string s2:); scanf(%s,s2); printf(s1=%s;s2=%s\n,s1,s2); for(i=0;i5;i++) printf( ss[%d]=%s,i,ss[i]); } 用“%s”格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。如:写成下面这样是不对的:printf(″%s″,c[0]); 如果数组长度大于字符串实际长度,也只输出到遇′\0′结束。 输出字符不包括结束符′\0′。 如:char c[10]={″China″}; /* 字符串长度为5,连’\0’共占6个字节 */ printf(″%s″,c);只输出字符串的有效字符“China”,而不是输出10个字符。这就是用字符串结束标志的好处。 说明 (4)如果一个字符数组中包含一个以上′\0′,则遇第一个′\0′时输出就结束。 可以用scanf函数输入一个字符串。 例如 scanf(″%s″,c); scanf函数中的输入项c是已定义的字符数组名,输入的字符串应短于已定义的字符数组的长度。例如,定义 char c[6]; 从键盘输入: China↙系统自动在China后面加一个′\0′结束符。 说明 如果利用一个scanf函数输入多个字符串,则在输入时以空格分隔。例如: char strl[5],str2[5],str3[5]; scanf(″%s%s%s″,str1,str2,str3); 输入数据: How are you?  数组中未被赋值的元素的值自动置′\0′。 若改为 char str[13]; scanf(″%s″,str); 如果输入以下12个字符 How are you?  大家思考一下str[13]数组中存放的结果会是什么呢? 由于系统把空格字符作为输入的字符串之间的分隔符,因此只将空格前的字符“How”送到st

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档