C语言【清华大学出版社】西安交通大学课件第07章.ppt

C语言【清华大学出版社】西安交通大学课件第07章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二、字符串与字符数组 字符串常量是用双引号括起来的一串字符,由系统自动加上一个字符串结束标志‘\0’。它占内存,但不记入字符串长度。 如:“china” 占内存6个字节,但字符串长度是5 在C语言中用字符数组来处理字符串,每个元素存放一个字符型数据。 字符型数组可用一般数组的初始化方式初始化外,还可以使用字符串常量初始化: 如:char message[]={“Hello”}; √ 或 char message[]=“Hello”; √ (这时,字符数组长度是6,字符串长度是5。) 注意:它与一般初始化方式: char message[]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’}; 初始化的结果是不同的。 用一般初始化方式结果: ‘H’ ‘e’ ‘l’ ‘l’ ‘o’ 用字符串常量初始化 : ‘H’ ‘e’ ‘l’ ‘l’ ‘o’ ‘\0’ 说明:字符数组本身并不要求它的最后一个元素一定是‘\0’,例如:char ch[2]={‘A’, ‘B’};是合法的。当定义字符数组用字符串常量赋初值时,最后有一个元素其值为‘\0’。为了使处理方法一致,在字符数组中也常常人为地加上一个值为‘\0’的元素。 如:char message[]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’}; I B M \0 \0 \0 例如 char c[6]=“IBM”; 数组c的前3个元素为‘I’,‘B’,‘M’,第四个元素为’\0’,后两个元素也为空字符。 例7.7 输出一个钻石图形 main() { char diamond[][5]={{‘’,’’,’*’},{‘’,’*’,’’,’*’},{‘*’,’’,’’,’’,”*’}, {‘’,’*’,’’,’*’},{‘’,’’,’*’}}; int i,j; for(i=0;i5;i++) { for(j=0;j5;j++) printf(“%c”,diamond[i][j]); printf(“\n”); } } * * * * * * * * 三、字符数组的输入输出 字符数组的输入输出可以有以下两种方法: ⑴逐个字符输入输出 用格式符“%c”输入或输出一个字符。 ⑵将整个字符串一次输入或输出。 用格式符“%s”输入输出字符串。 例如:char c[]=“Hello” ; printf(“%s”, c) ; 注意: ⑴输出字符不包括结束符‘\0’。 ⑵用“%s”格式符输出字符串时,printf函数的输出项是字符数组名,而不是数组元素名。 ⑶输出字符数组时,遇到第一个‘\0 ’,输出就结束。 如 char c[10]=“china”;printf(“%s”,c); 只输出“china”5个字符,而不是10个字符。 ⑷用“%s”格式符输入字符串时,scanf函数的输出项是字符数组名时,不要再加地址符,因为C语言 中数组名代表该数组的起始地址。 如: char str[10]; scanf(“%s”,str); ⑸用“%s”格式符输入字符串时,scanf函数的输出项是 字符数组名时,从键盘输入的字符串应短于已定义的字 符数组的长度。系统自动在后面加 个‘\0’结束符。 例如 scanf(“%s”,c); char c[6]; 从键盘输入 china 系统自动在后面加一个’\0’结束符。 ⑹利用scanf函数输入多个字符串时,是以空格、回车、 跳格分隔。例如: char str1[5],str2[5],str3[5]; scanf(“%s%s%s”,str1,str2,str3); 输入数据: how are you? 输入后str1为:how\0; str2为: are\0; str3为: you?\0 如果改为 char str[13]; scanf(“%s”,str); 如果输入以下12个字符 how are you? 实际上不是把这12个字符加上’\0’送到数组中,而只将 空格前的字符”how”送到str,并在后面加上一个’\0’。 所以str为:how\0 main() { char a[5]; int i=0; whil

文档评论(0)

飞扬的岁月 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档