从用户输入和打印中分离数字字符

时间:2016-11-20 17:48:05

标签: c

所以我试图读取用户输入并逐行打印输入中的数字字符。这是我到目前为止所得到的:

printf("Type characters in a line, with no spaces: \n\n");

scanf(" %c", &inp);

int check(char num, char oth, char inp, char c, int inum)
{
    if(c==0,1,2,3,4,5,6,7,8,9)
    {
        printf("%c", &c);
    }
}

我是一个完全的初学者,诚实地完全迷失了,我会感激一些帮助,或者只是为了让我指出正确的方向。我也不能使用字符串。

2 个答案:

答案 0 :(得分:1)

在大多数编码中,代表数字的字符从'0'开始按升序排列,因此您只需检查c是否在['0', '1', ... '8', '9']范围内,包括开头和端。

int check(char num, char oth, char inp, char c, int inum)
{
    if ((c >= '0') && (c <= '9'))
        printf("%c", c);
}

如果您想逐行打印字符 ,则还应打印换行符('\n'):printf("%c\n", c);

答案 1 :(得分:1)

C语言有一个函数isdigit(在ctype.h中定义),可以为您执行此验证:

#include <ctype.h>
...
int check(char num, char oth, char inp, char c, int inum){
    if(isdigit((unsigned char)c)){
        printf("%c", &c);
    }
}