第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
2、(i=0; i5; i+) putchar( ti );,3/30,5.3.2字符串,字符串常量是双引号括起的任意字符序列,“Hello World“ “WangPing“ “Please 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. 对字符串的操作,把字符串放入一维字符数组(存储) 对字符串的操作 = 对字符数组的操作 普通字符数组:数组元
4、素的个数是确定的,一般用下标控制循环 字符串:没有显式地给出有效字符的个数,只规定在字符串结束符 0 之前的字符都是字符串的有效字符,一般用结束符 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)
5、 i+; si=0; /将n转换为 0,for( i=0; stri!=0; i+) putchar(stri);,字符串长度是i还是i-1、i+1?,字符串长度是有效字符个数s0si-1,共i个,输出字符串,不需要知道字符个数,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);,Wa
6、ng Li,Wang Li,从键盘上读入一个完整的行,存入字符数组name。并用空字符0取代行尾的换行符n。,把字符数组中的字符串输出到显示器。,10/30,5.3.4字符串应用举例,例12. 输入一行字符(字符个数不多于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+
7、) if( stri = ) count+; printf(“n 其中的空格总数为 %d n “,count); ,C is a programming language,在循环执行时,扫描整个数组以统计出空格 的数量,直到遇到字符 0。,其中的空格总数为 4,也可用while 循环 i = 0; while(stri!=0) if(stri = ) count+; i+; ,12/30,(1)输入一个以回车结束的字符串(少于80个字符),统计其中数字字符的个数。 (2)输入一个以回车结束的字符串(少于80个字符),统计其中0、1、2、 9,哪个数字字符的出现次数最多,模仿练习:,#inclu
8、de 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); return 0; ,模仿练习 源程序,Enter a string: Its 512? count = 3,14/30,例13 进制转换,输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符(09)转换为整数,去掉其他字符。例如,字符
9、串”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中存的是字符, stri-0将其转化为对应的十进制数字,15/30,#include int main() int d, i; char str80; printf(“Enter a str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 字符串
链接地址:https://www.31doc.com/p-3407186.html