实验7-3-7 字符转换 (15分)
本题要求提取一个字符串中的所有数字字符(‘0’……‘9’),将其转换为一个整数输出。
输入格式:
输入在一行中给出一个不超过80个字符且以回车结束的字符串。
输出格式:
在一行中输出转换后的整数。题目保证输出不超过长整型范围。
输入样例:
free82jeep5
输出样例:
825
#include<stdio.h>
int main (void) {
char a[90];
char b[90];
int i,j,k;
for (i = 0,j = 0;i < 90;i++){
scanf ("%c",&a[i]);
//将数字备份到字符串B中
if (a[i] >= '0'&&a[i] <= '9'){
b[j++]=a[i];
}
//结束,记录数组B个数,以便于遍历
if (a[i] == '\n'){
k=j;
b[j]='0';
a[i]='0';
//记得0结尾
break;
}
}
int sum=0;
//重点来了 我们看看题目
//本题要求提取一个字符串中的所有数字字符('0'……'9')
//,将其转换为一个整数输出。
//整数,所以前导0是不应该出现的
for (i = 0;i < k;i++){
//输出最好按题目要求来,不然会被阴
if (i == 0) sum=b[i]-'0';
//字符串转数字要-'0'
else sum=sum*10+b[i]-'0';
}
printf ("%d",sum);
return 0;
}