字符型数组及字符串处理

上传人:wt****50 文档编号:33127303 上传时间:2018-02-14 格式:PPT 页数:20 大小:443.50KB
返回 下载 相关 举报
字符型数组及字符串处理_第1页
第1页 / 共20页
字符型数组及字符串处理_第2页
第2页 / 共20页
字符型数组及字符串处理_第3页
第3页 / 共20页
字符型数组及字符串处理_第4页
第4页 / 共20页
字符型数组及字符串处理_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《字符型数组及字符串处理》由会员分享,可在线阅读,更多相关《字符型数组及字符串处理(20页珍藏版)》请在金锄头文库上搜索。

1、5.45.5 字符型数组及字符串处理,引例,输入一个以回车结束的字符串(少于10个字符),它可由数字和字母组成。要求将该字符串中数字转换成整数后输出。,#include int main(void) int i, n; char s10; i = 0; printf(Enter a string: ); /* 输入字符串 */ while(si = getchar( ) != n) i+; si = 0 ; n = 0; /* 将字符串转换为整数 */ for(i = 0; si != 0 ; i+) if(si = 0) n = n * 10 + (si - 0) ; else break;

2、 /*非数字字符结束转换*/ printf(digit = %dn, n); return 0;,源程序,Enter a string: 123digit = 123,Enter a string: 12a3digit = 12,Enter a string: a12digit = 0,Enter a string: 12a3digit = 123,Enter a string: a12digit = 12,i si 0 s0=1 s1=2 2 s2=a3 s3=34 s4=0,程序分析,n = 0; for(i = 0; si != 0; i+) if(si = 0) n = n * 10

3、+ (si - 0);,i si si-0 n = n*10+(si-0)0 1 1 0*10+1 = 1 1 2 2 1*10+2 =122 a 3 3 3 12*10+3 =123,Enter a string: 1#2#3digit =?digit =1,/指针方式访问数组中字符n = 0; for(i = 0; *(s+i)!= 0; i+) if(*(s+i) = 0) n = n * 10 + (*(s+i) - 0);,下标,4 0 跳出循环,一维字符数组,字符串存储和运算用一维字符数组实现。一维字符数组的定义、引用、初始化与其他类型的一维数组相同。定义一个含有5个字符型元素的数

4、组tchar t5;数组t初始化 char t5=H, a, p, p, y; char t = H, a, p, p, y;,输出数组 t 的所有元素for(i=0; i 对字符数组的操作,1. 字符串的存储初始化,字符串存放在一维字符数组中 char s6 = H, a, p, p, y, 0;字符数组初始化:用字符串常量赋值char s6 = Happy;char s = Happy;char s = Happy;数组长度 = 字符串的有效长度 + 1char t5; Happy 能存入t吗?,字符串的存储,char s80= Happy;字符串遇 0 结束第一个 0 前面的所有字符和

5、0 一起构成了字符串 Happy”0 之后的其他数组元素与该字符串无关,字符串由有效字符和字符串结束符 0 组成,2. 对字符串的操作,将字符串放入一维字符数组存储对字符串的操作 = 对字符数组的操作普通字符数组:数组元素的个数是确定的,一般用下标控制循环字符串:没有显式地给出有效字符的个数,只规定在字符串结束符 0 之前的字符都是字符串的有效字符,一般用结束符 0 来控制循环循环条件:si != 0,计算字符串的有效长度,并输出该字符串。字符串的有效长度:有效字符的个数数组中第一个 0 前面的字符个数编程:为字符串赋值“Happy”,并输出。,计算字符串的有效长度,#include int

6、main(void) int i ; char s80 = Happy; for(i = 0; si != 0; i+) ; /循环体为空语句 printf(len = %dn, i); for(i = 0; si != 0; i+) /输出字符串 putchar(si); /单字符的输出函数 return 0;,源程序,循环条件,len = 5Happy,for(i = 0; si != 0; i+) putchar(si);,3.字符串的输出,Happy,Happy,Happy,for(i = 0; i 字符串结束符0 */ count = 0; for(i = 0; si != 0; i

7、+) if(si = 0) count+; printf(count = %dn , count); return 0;,源程序,Enter a string: Its 512?count = 3,能省略si = 0吗?,gets(s);,#include int main(void) int i, n; char s10; printf(Enter a string: ); /* 输入字符串 */ i = 0; while(si = getchar( ) != n) i+; si = 0; n = 0; /* 将字符串转换为整数 */ for(i = 0; si != 0; i+) if(s

8、i = 0) n = n * 10 + (si - 0); else break; printf(digit = %dn, n); return 0;,简化引例gets(s),Enter a string: 123e4digit = 1234,gets(s);,实践:任务一(ex04_01.cpp),编写一个字符串处理程序,程序功能为输入一个字符串,删除其中的数字字符后,全部大写输出。提示,字符串全部转成小写函数原型:char*strlwr(char*src)程序的正确运行示例:输入一个字符串:ShangHai2012!输出:shanghai!,实践:任务二(ex04_02.cpp),编写一个字符串处理程序,程序功能为输入两个英文字符串,取每个字符串的第一个单词组成一个新的字符串,全部大写输出。提示,字符串全部转成大写函数原型:char*strupr(char*src) 程序的正确运行示例:输入第一个字符串:my hometown is Shanghai!输入第二个字符串:God talked to you输出:MYGOD,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号