我想问一下在C中检查用户输入的最有效方法是什么。我希望用户输入一个4位整数。如何确保用户输入了4位数而没有字母?
答案 0 :(得分:1)
一种方式:
1)读为string
或char*
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
函数将字符串转换为long
。 strtol
可以执行错误检查,以检查您是否真的有long
。然后检查数字是否在1000
和9999
之间(对于正4位十进制整数)。