资源描述:
《字符型数组及字符串处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、§5.4~§5.5字符型数组及字符串处理引例输入一个以回车结束的字符串(少于10个字符),它可由数字和字母组成。要求将该字符串中数字转换成整数后输出。#includeintmain(void){inti,n;chars[10];i=0;printf("Enterastring:");/*输入字符串*/while((s[i]=getchar())!='')i++;s[i]=' ';n=0;/*将字符串转换为整数*/for(i=0;s[i]!=' ';i++)if(s[i]<='9'&&s[i]>='0')n=n*10+(s[i]-'0');
2、elsebreak;/*非数字字符结束转换*/printf("digit=%d",n);return0;}源程序Enterastring:123digit=123Enterastring:12a3digit=12Enterastring:a12digit=0Enterastring:12a3digit=123Enterastring:a12digit=12is[i]0s[0]=‘1’s[1]=‘2‘2s[2]=‘a’3s[3]=‘3’4s[4]=‘ ’程序分析n=0;for(i=0;s[i]!=' ';i++)if(s[i]<='9'&&s[i]>='0'
3、)n=n*10+(s[i]-'0');0123……s12a3 ??is[i]s[i]-'0'n=n*10+(s[i]-'0')0'1'10*10+1=11'2'21*10+2=122‘a'3'3'312*10+3=123Enterastring:1#2#3digit=?digit=1//指针方式访问数组中字符n=0;for(i=0;*(s+i)!=' ';i++)if(*(s+i)<='9'&&*(s+i)>='0')n=n*10+(*(s+i)-'0');下标4' '跳出循环一维字符数组字符串存储和运算用一维字符数组实现。一维字符数组的定义、引用、初始化与
4、其他类型的一维数组相同。定义一个含有5个字符型元素的数组tchart[5];数组t初始化chart[5]={'H','a','p','p','y'};chart[]={'H','a','p','p','y'};t[0]t[1]……t[4]tHappy输出数组t的所有元素for(i=0;i<5;i++)putchar(t[i]);一维字符数组的存储staticchars[6]={‘H’,‘a’,‘p’,‘p’,‘y’};//对前5位赋值,其余为0。等价于:staticchars[6]={'H','a','p','p','y',0};0代表字符‘ ’,也就是ASCI
5、I码为0的字符。等价于:staticchars[]={'H','a','p','p','y',' '};s[0]s[1]s[5]sHappy s[0]s[1]s[4]sHappy字符串处理字符串常量用一对双引号括起来的字符序列+一个字符串结束符' '"Happy"6个字符'H''a’'p’'p’'y'' '有效字符字符串结束符字符串的有效长度:有效字符的个数字符串与一维字符数组字符串:一个特殊的一维字符数组将字符串放入一维字符数组存储对字符串的操作===>对字符数组的操作1.字符串的存储——初始化字符串存放在一维字符数组中chars[6]={'H','a'
6、,'p','p','y',' '};字符数组初始化:用字符串常量赋值chars[6]={"Happy"};chars[]={"Happy"};chars[]="Happy";数组长度>=字符串的有效长度+1chart[5];"Happy"能存入t吗?s[0]s[1]……s[5]sHappy 字符串的存储chars[80]="Happy";字符串遇' '结束第一个' '前面的所有字符和' '一起构成了字符串"Happy”' '之后的其他数组元素与该字符串无关s[0]s[1]……s[5]sHappy sh字符串由有效字符和字符串结束符' '组成2.对字
7、符串的操作将字符串放入一维字符数组存储对字符串的操作===>对字符数组的操作普通字符数组:数组元素的个数是确定的,一般用下标控制循环字符串:没有显式地给出有效字符的个数,只规定在字符串结束符' '之前的字符都是字符串的有效字符,一般用结束符' '来控制循环循环条件:s[i]!=' '计算字符串的有效长度,并输出该字符串。字符串的有效长度:有效字符的个数数组中第一个‘ ’前面的字符个数编程:为字符串赋值“Happy”,并输出。计算字符串的有效长度s[0]s[1]……s[5]sHappy sh#includeintmain(void){in
8、ti;ch