实验7-3-7 字符转换 (15 point(s))
本题要求提取一个字符串中的所有数字字符('0'……'9'),将其转换为一个整数输出。
输入格式:
输入在一行中给出一个不超过80个字符且以回车结束的字符串。
输出格式:
在一行中输出转换后的整数。题目保证输出不超过长整型范围。
输入样例:
free82jeep5
结尾无空行
输出样例:
825
结尾无空行
参考答案:
答案1(部分正确)
#include<stdio.h>
int main()
{
char c;
while(scanf("%c",&c)&&'\n'!=c)if('0'<=c&&'9'>=c) printf("%c",c);
//注意不是题干中所述的回车,是换行
}
/*
注意题目中的"将其转换为一个整数输出":
我们知道标准的输入输出printf()也好,puts()也罢,或者是putchar()
输出的都是字符格式(或 字符串格式),
因此没有要中间再去吧字符转换成整型,反正最后打印的都是字符....
但是这样又会有新的问题,输出的话会输出"前导0",
题干可能有个未直接说明的考点: 就是不能输出"前导0"的格式,
可能的隐性要求是,要把字符串中具有前导0格式的转换成非前导0格式,
话说不是说好了"提取一个字符串中的所有数字字符".............................最后又要删掉字符'0'
*/
答案2:
真实的题意:
提取一个字符串中的所有整数(注意:是整数,不是数字字符.输出整数不能有前导0)