整数输入检查C

时间:2012-04-02 21:09:11

标签: c input

我想问一下在C中检查用户输入的最有效方法是什么。我希望用户输入一个4位整数。如何确保用户输入了4位数而没有字母?

3 个答案:

答案 0 :(得分:1)

一种方式:

1)读为stringchar*

2)检查每个char是否在49-58 ASCII范围内。

最后,如果字符串中只有四个字符并且满足(2)

,则使用int(如果为long,则转换为atol())转换为atoi()

答案 1 :(得分:0)

所有输入都被视为字符串(控制台)。您可以做的是检查lengh是否小于4,如果是,则循环使用isdigit()为每个char查看是否为数字。

为了检查数字,你可以做类似的事情:

 int isnumeric(char *str)
 {
     while(*str)
     {
        if(!isdigit(*str))
            return 0;
            str++;
     }
     return 1;
 }

答案 2 :(得分:0)

使用strtol函数将字符串转换为longstrtol可以执行错误检查,以检查您是否真的有long。然后检查数字是否在10009999之间(对于正4位十进制整数)。