实验7-3-7 字符转换(15 分)

实验7-3-7 字符转换(15 分)
本题要求提取一个字符串中的所有数字字符('0'……'9'),将其转换为一个整数输出。

输入格式:
输入在一行中给出一个不超过80个字符且以回车结束的字符串。

输出格式:
在一行中输出转换后的整数。题目保证输出不超过长整型范围。

输入样例:
free82jeep5

输出样例:
825

#include<stdio.h>
#include<string.h>
#define N 85
//思路:使用字符数组存储数字的字符形式,然后将字符处理成数字。
int main(void)
{
	int i, j, temp=1, flag, len1 = 0, len2 = 0, sum = 0;
	char ch;
	char str1[N];  //存储输入的字符串
	char str2[N];  //存储处理后的字符串

	ch = getchar();  //输入字符串
	for (i = 0; ch != '\n'; i++)
	{
		str1[i] = ch;
		len1++;
		ch = getchar();
	}
	for (i = 0; i < len1; i++) //初步处理字符串,得到‘0’ 到 ‘9’的字符数组
	{
		if (str1[i] >= '0' && str1[i] <= '9')
		{
			str2[len2] = str1[i];  //经典:获取字符串中需要的字符。设置计数器,只有发现大写字母时len2才进行加1 处理
			len2++;                //记录大写字母的长度
		}
	}
	for (i = len2-1; i >= 0; i--)
	{
		sum += (str2[i] - '0') * temp;
		temp *= 10;
	}
	printf("%d\n", sum);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/AA11224488/article/details/80260439