C语言程序设计课件-第五章 数组.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
③ 如果数组长度大于字符串的实际长度,也只输出到’\0’结束。 ④ 如果一个字符数组中包含一个以上的’\0’,则遇到第一个’\0’ 输出结束。 如:char str[10]=china\0usa; printf(%s,str); 输出结果为:china 4.字符数组的输入 字符数组输入也有两种方法: (1) 单个字符输入。可以用格式输入函数scanf()的%c格式,或用字符输入函数getchar()。 (2) 将整个字符串一次输入。可以用格式输入函数scanf()的%s格式,或用字符串输入函数gets()。 将整个字符串一次输入时要注意以下几点: ① 用scanf()的%s格式不能输入含有空格的字符串,遇到空格系统认为输入结束,所以用scanf()函数一次能输入多个不含空格的字符串。用gets()函数能够输入含有空格的字符串,但一次只能输入一个字符串。 如:char str1[12]; scanf(%s,str1); printf(%s,str1); 数据输入:how are you↙ 输出结果:how 字符数组str1的内容见图5.6。 图5.6 如果改为: char str1[12]; gets(str1); printf(%s,str1); 数据输入:how are you↙ 输出结果:how are you 字符数组str1的内容见图5.7。(□代表空格) 图5.7 如果改为: char str1[4],str2[4],str3[4]; scanf(%s%s%s,str1,str2,str3); printf(%s\n%s\n%s,str1,str2,str3); 数据输入:how are you↙ 输出结果:how are you 字符数组str1、str2和str3的内容见图5.8。 ② 系统自动在最后一个字符的后面加上一个字符串结束符’\0’。 ③ scanf()的%s格式的输入项是数组名时,数组名前不能加取地址符“”,因为数组名本身代表数组的首地址。 5.2.3 用字符数组实现字符串 若字符串存放在字符数组中,对字符串中字符的引用可以用下标法,也可用指针法。其引用形式和前面介绍的一维数组元素的引用相同。 1.用下标法引用 【例5.5】将一个字符串逆置后接到原串的后面。 #include stdio.h main() { char str[81]; int i,j; gets(str); i=0; while(str[i]!= ’\0’) i++; j=i; i--; while(i=0) {str[j]=str[i]; i--; j++; } str[j]= ’\0’; puts(str); } 〖运行结果〗: abc↙ abccba ? 2.用数组名法引用 【例5.6】将字符数组a中的字符串复制到字符数组b。 #include stdio.h main() { char a[81],b[81]; int i=0; gets(a); while(*(a+i)!= ’\0’) {*(b+i)=*(a+i); i++; } *(b+i)= ’\0’; puts(b); } 〖运行结果〗: china↙ china 3.用指针变量法引用 【例5.7】删除字符串尾部空格。 #include stdio.h main() { char str[80],*p; gets(str); p=str; while(*p) p++; p--; while(*p==’ ’) p--; p++; *p=’\0’; printf(%s,str); } 〖运行结果〗: abcd□□□□□↙ abcd /*光标在d的后一列上*/ 5.2.4 用字符指针变量实现字符串 ? 除了能用字符数组处理字符串外,还可以用字符指针变量。如: char *str=china; 等价于: char *str; str=china; 其含义为:定义了一个字符型指针变量str,并将字符串china“ 的首地址赋给它,即str指向字符串的第一个字符“c”。 【例5.8】 #include stdio.h main() { char *p1=china; char *p2; puts(p1); p2=p1; puts(p2+2); } 〖运行结果〗: china ina 虽然用字符数组和字符指针变量都能实现对字符串的处理,但它们之间是有区别的,主要注意以下几点: ① 字符数组有若干个元素组成,每个元素中存放一个字符

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档