在C90中格式化输入(删除前导零和小数位)?

问题描述 投票:0回答:3
#include <stdio.h>

int intVal(int x)
{
    if(x < '0' || x > '9'){
        return 0;
    }
    else{
        x = x - '0';
        return x;
    }
}

int main(void)
{
    int c, num, prev;

    while((c = getchar()) != EOF){
        num = (intVal(prev) * 10) + intVal(c);
        prev = num;
        printf("%d", num);
    }
    return 0;
}

我想用这个程序做的事情是输入一个任意数字,一次读取一个char,然后将其格式化为一个int以便我可以使用它(不想使用printf格式化)另外,我仅允许使用getchar和printf进行此分配。

样本输入:0001234.5edit所需的输出:<1234>(5)实际输出:0001234050

[我感觉自己正处于顿悟的风口浪尖,但遇到了障碍,请帮忙吗?

*编辑我忘了说我要去的END结果是在<1234>中包含非十进制数字,并在方括号(5)中包含十进制数字]

c int string-formatting c89
3个回答
3
投票

几件事:


0
投票

尝试一下(没有符号评估和错误处理):


0
投票

您的函数intVal

© www.soinside.com 2019 - 2024. All rights reserved.