检查数组是否只包含数字

标签 c arrays

我遇到了一个问题,我想遍历一个数组并检查是否只输入了正数。我知道可以使用 ctype.h 中的 isDigit,但我宁愿自己构造一些东西。我认为可行的方法是遍历数组的每个元素并查看存储在那里的值是否在 0 到 9 之间,但它不起作用。到目前为止,这是我的代码:

char testArray[11] = {'0'};  
printf("Enter a string no longer than 10 chars");  
scanf("%s", testArray);  
int x;  
int notanumber = 0;  
for (x = 0; x < 11; x++) {  
        if ((testArray[x] < 0) || (testArray[x] > 9)) {  
                notanumber++;  
        }  
}  
printf("%i", notanumber);

最佳答案

它不起作用,因为 09 是整数而不是字符。 将您的 if 条件更改为

if((testArray[x] >= '0') || (testArray[x] <= '9')){ ... }   

检查 0 到 9 的数字。

关于检查数组是否只包含数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20312518/

相关文章:

c# - 始终根据最新数组位置获取最旧数组索引的算法

c - 如何使用一维数组表示访问二维数组中的元素?在C语言中

C 函数 : assign unsigned variable to a function with a signed parameter

c - 千兆字节 (GB) 是多少字节?

c - 如何为该程序正确格式化输出?

javascript - 为什么使用grid构造的2d矩阵与使用new Array()使用嵌套数组构造的2d矩阵的工作原理不同?

java - 检查数组是单维还是多维

c++ - 将 C++ 实例方法分配给全局函数指针?

安卓工作室 JNI : cannot compile JPEG c-library

.net - 通过引用传递数组元素