C:检查一个数组只包含 0-7 范围内的数字

标签 c arrays validation numeric

我很难确保数组只填充 0-7 范围内的数字。 当我用超出范围的数字填充数组时,例如。 0 0 0 8 显示错误消息。但是,如果用户输入一个字母,我的程序就会崩溃。

 int array[4] = {0};  

 scanf("%d %d %d %d", &array[0], &array[1], &array[2], &array[3]);

 for(int i=0; i<4; i++)
    {
        if(isdigit(array[i]) && array[i]<8 && array[i]>=0)
        {
             // continue program
        }
        else
        {
            printf("Invalid entry.");
            break;
        }
    }

如有任何帮助,我们将不胜感激。

最佳答案

少一个测试(比黑客的解决方案):

if (array[i] & ~7) {
    invalid_input();
} else {
    /* valid input */
}

如果您仍然有问题,那么问题可能出在其他地方?..

关于C:检查一个数组只包含 0-7 范围内的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21317371/

相关文章:

c++ - C/C++ : What's faster: a for loop, 或递增指针

c - 第一次尝试总是出现验证错误

c - 努西诺夫平行

c - 无法复制字符串

python - 为什么控制台卡在我用 python 解决 9X9 数独板的最后一个函数上?

c - 结构指针运算符

数字的javascript验证

使用 XSD 进行 PHP SimpleXMLElement 验证

c - Luke Stackwalker 运行时返回错误,gprof 工作正常

arrays - Angularjs |在 JsonArray 中搜索特定值