第5章数组字符串.ppt
《第5章数组字符串.ppt》由会员分享,可在线阅读,更多相关《第5章数组字符串.ppt(30页珍藏版)》请在三一办公上搜索。
1、1/30,5.3 字符数组与字符串,char a=W;char b=a;char c=n;char d=g;char e=L;char f=i;,如何让程序存储我的姓名?,Wang Li,char name15=W,a,n,g,L,i;,用若干个字符,用字符数组,用字符串char name15=“Wang Li”;,2/30,5.3.1 一维字符数组,一维字符数组的定义、引用、初始化与其他类型的一维数组一样。char str80;定义一个含有80个字符型元素的数组str char t5=H,a,p,p,y;初始化数组 t,输出数组 t 的所有元素for(i=0;i5;i+)putchar(ti
2、);,3/30,5.3.2字符串,字符串常量是双引号括起的任意字符序列,Hello WorldWangPingPlease enter your full name:“Hello!n,字符串常量中可以包含转义序列,字符串结束符,字符串的有效长度:有效字符的个数,字符串常量,3,4/30,字符串的存储,auto char s80=Happy;字符串遇 0 结束第一个 0 前面的所有字符和 0 一起构成了字符串 Happy”0 之后的其他数组元素与该字符串无关,字符串由有效字符和字符串结束符 0 组成,5/30,字符串与字符数组,在语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串字符
3、数组和字符串的区别是:字符串的末尾有一个空字符 0,字符串可按如下方式声明并初始化:char name15=W,a,n,g,L,i,0;char name15=WangLi;char password=12345678;,手工加入一个空字符,系统将自动加入一个空字符,省略数组大小,系统自动计算,大小为后面的字符总数加1,最后一个元素存入一个空字符。,6/30,2.对字符串的操作,把字符串放入一维字符数组(存储)对字符串的操作=对字符数组的操作普通字符数组:数组元素的个数是确定的,一般用下标控制循环字符串:没有显式地给出有效字符的个数,只规定在字符串结束符 0 之前的字符都是字符串的有效字符,一
4、般用结束符 0 来控制循环循环条件:si!=0,7/30,5.3.3 字符串的输入输出,例11 从键盘读入一个字符串,以回车符表示输入结束。输出该字符串长度,然后输出该字符串,方法1:象普通数组一样逐元素输入输出,输入:s0=getchar();/读入第一个字符i=0;while(si!=n)/当不是回车i+;si=getchar();si=0;/将n转换为 0,或i=0;while(si=getchar()!=n)i+;si=0;/将n转换为 0,for(i=0;stri!=0;i+)putchar(stri);,字符串长度是i还是i-1、i+1?,字符串长度是有效字符个数s0si-1,共i
5、个,输出字符串,不需要知道字符个数,0是结束标志,0,8/30,方法2:用%s整体输入输出,char name10;,scanf(%s,name);,printf(%s,name);,格式描述串中使用转换字符串“%s”,Wang Li,Wang,空格是%s输入结束的标志,9/30,方法3:用gets和puts函数,char name10;gets(name);puts(name);,Wang Li,Wang Li,从键盘上读入一个完整的行,存入字符数组name。并用空字符0取代行尾的换行符n。,把字符数组中的字符串输出到显示器。,10/30,5.3.4字符串应用举例,例12.输入一行字符(字符
6、个数不多于80),统计其中空格的个数,思路分析:(1)定义字符数组 str81;(2)读入字符串若字符串确定不含空格,可以用scanf(“%s”,i+),11/30,#include int main()char str81;int i,count=0;printf(n 请输入一行字符:n);gets(str);for(i=0;stri!=0;i+)if(stri=)count+;printf(“n 其中的空格总数为%d n,count);,C is a programming language,在循环执行时,扫描整个数组以统计出空格 的数量,直到遇到字符 0。,其中的空格总数为 4,也可用w
7、hile 循环i=0;while(stri!=0)if(stri=)count+;i+;,12/30,(1)输入一个以回车结束的字符串(少于80个字符),统计其中数字字符的个数。(2)输入一个以回车结束的字符串(少于80个字符),统计其中0、1、2、9,哪个数字字符的出现次数最多,模仿练习:,#include int main()int count,i;char str80;printf(Enter a string:);gets(str);count=0;for(i=0;stri!=0;i+)/若是数字 if(stri=0)count+;printf(count=%dn,count);ret
8、urn 0;,模仿练习 源程序,Enter a string:Its 512?count=3,14/30,例13 进制转换,输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符(09)转换为整数,去掉其他字符。例如,字符串”3a56bc”,转换后的整数为356,难点分析:如何将字符串转化为整数值?例如字符串”356“转换为整数356(1)遇到第一个整数3,d=3;(2)遇到第二个整数5,d=d*10+5=35(3)遇到第三个整数6,d=d*10+6=356.,d=0;for(i=0;stri!=0;i+)if(stri=0&str=9)d=d*10+(stri-0),stri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 字符串
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5828330.html