6第六章 组(3.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 数 组(3) ——数据组织方式一 6.4 字符数组与字符串 6.4.1 字符数组的定义 char 数组名[常量表达式]; 如: char a[5]; 元素为:a[0],a[1],…….,a[4],每一个元素的值为一个字符的ASCII码。 6.4.2 字符数组的存储结构 连续的存储单元,每个存储单元为一个字节 6.4.3 字符数组的初始化 1. 逐个元素初始化,如: char c[10]={’h’,’a’,’p’,’p’,’y’}; 6.4.4 字符数组与字符串的输入输出 1.用格式符”%c”逐个字符输入输出: 字符串格式符“%s”——数组名 2. 用格式符“%s”整个字符串输入输出: 注意: 用“%s”格式输出字符数组时,遇‘\0’结束输出,且输出字符中不包含‘\0’。若数组中包含一个以上‘\0’,则遇第一个‘\0’时即结束输出。 用“%s”格式输入或输出字符数组时,函数scanf的地址项、函数printf的输出项都是字符数组名。这时数组名前不能再加“”符号,因为数组名就是数组的起始地址。 语句“scanf(%s,s);”为字符数组s输入数据时,遇用空格键或回车键时结束输入。但所读入的字符串中不包含空格键或回车键,而是在字符串末尾添加\0。 其它函数 字符函数:getchar( ); putchar(字符); 字符串函数:gets(数组名); puts(字符串); #include stdio.h 3.用字符串输入函数gets 函数原型: char *gets (char s[]); 调用形式:gets(字符数组名); 举例: char a[10]; gets(a); printf( %s ,a); 4.用字符串输出函数puts 函数原型:int puts (const char *s); 调用形式:puts(字符串/字符数组); 函数功能: 输出一个字符串。 应用举例: char a[10]={“Hello!”}; puts(a); puts(“Welcome”); 字符串编程举例 【例】将字符串s1从第m个字符开始剩余的所有字符,送入字符数组s2中。 6.4.5 字符数组应用 【例6】用户从键盘输入一个字符串(字符中不包含空格),当输入回车时认为输入结束,统计输入字符串中小写英文字母、大写英文字母、数字字符、其他字符的个数。 参考程序 #include stdio.h void main() {int i,m,n,x,y; char s[80]; printf(input a string:\n); scanf(%s,s); m=n=x=y=0; i=0; while(s[i]!=\0) { if(s[i]=as[i]=z) m++; else if(s[i]=As[i]=Z) n++; else if(s[i]=0s[i]=9) x++; else y++; i++; } printf(a~z:%d\nA~Z:%d\n0~9:%d\nothers:%d\n, m,n,x,y); } 【例7】将无符号整型数转换为二进制字串 基本思路: 转换方法:用“除2取余”进行 转换,先余为低位。 数据结构: 将结果(二进制字串)用字符数组保存 转换过程: 无符号整数对2求余数; 得到的余数转换为对应的ASCII码保存到数组中; 将该整数除2取整,得到一个新整数; 重复上述过程,直至新整数为零。 数组中保存的二进制字串是逆序的,输出时应注意调整。 参考程序 void prog10_2() /* 将 n 转换成二进制字串s */ { char s[20]; unsigned int n,i=0; scanf(“%d”,n); do{ /* 按除2取余产生逆序数字串 */ s[i++] = n%2+’0’; /* 将产生的余数转换为ASCII码 */ n = n/2 ; /* 除2取整给出下一个数*/ }while(n != 0); /* 判断是否转换结束 */ for (int j=i-1; j=0; j--) putc(s[j]); } 复习:数组 一维数组的定义:类型说明 数组名[常量表达式]; 如: char c[50]; /* 50个char型数据*/

文档评论(0)

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

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

1亿VIP精品文档

相关文档