pta字符转换
本题要求提取一个字符串中的所有数字字符(‘0’……‘9’),将其转换为一个整数输出。
输入格式:
输入在一行中给出一个不超过80个字符且以回车结束的字符串。
输出格式:
在一行中输出转换后的整数。题目保证输出不超过长整型范围。
输入样例:
free82jeep5
结尾无空行
输出样例:
825
结尾无空行
#include <stdio.h>
int main()
{
char a[80];
int i = 0, flag = 0, count = 0;
//flag用来记录输出字符个数,count用来记录还没输出过时检测到的0的个数
while ((a[i] = getchar()) != '\n')
{
i++;
}
a[i] = '\0';
for (i = 0; a[i] != '\0'; i++)
{
if (a[i] <= '9' && a[i] >= '0')
{
if (flag == 0 && a[i] == '0')
{
count++;
continue;
}//解决前导零问题
else
{
printf("%c", a[i]);
flag++;
}
}
}
if (flag == 0 && count != 0)
{
printf("0");
}
// 解决字符串中只有零情况
return 0;
}
前导零其他解决办法,个人感觉比较麻烦(可能因为我比较懒=_=), 但也是一个很好的办法,作者比我聪明,感兴趣的点下连接去看看