本题要求提取一个字符串中的所有数字字符(‘0’……‘9’),将其转换为一个整数输出。
输入格式:
输入在一行中给出一个不超过 80 个字符且以回车结束的字符串。
输出格式:
在一行中输出转换后的整数。题目保证输出不超过长整型范围。
输入样例:
free82jeep5
输出样例:
825
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/13/exam/problems/528
提交:
题解:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
int main(void) {
char str[81];
gets(str);
int index = 0;
long int result = 0;
// 从后往前遍历数组,方便计算最终结果
for (int i = (int) strlen(str) - 1; i >= 0; i--) {
if (isdigit(str[i])) {
// 某个字符是数字字符,将其转化为数字
int number = str[i] - '0';
// 依次是个位、十位,百位···,累加求和
result += number * (long) pow(10, index);
index++;
}
}
printf("%ld", result);
return 0;
}