中M2019春C入门和进阶练习 7-155 字符转换 (15 分)

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

输入格式:

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

输出格式:

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

输入样例:

free82jeep5

输出样例:

825

#include <stdio.h>
int main(){                  //题目中的转换指例如若提取出的数字是000则输出需为0,078则输出为78
    int p=0,t=1;
    char tmp;
    tmp=getchar();
    while(tmp!='\n'){
        if(tmp>48&&tmp<=57){ //0的ASCII码为48,即该字符为非零数字时P=1可输出,该字符是0时则p=0下面判断不输出
            p=1;                    //p相当于清除了078中的0,只有当前面有输出非零数字时后面的0才可输出
        }
        if(tmp>=48&&tmp<=57&&p){     //ASCII码判断是否是数字,p=1且字符为数字时输出
            printf("%c",tmp);
            t=0;             //t为是否有输出
        }
        tmp=getchar();
    }
    if(t){       //若无输出则为0
        printf("0\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Great_Linlin/article/details/89220365
今日推荐