c - 在c中如何检查字符数组是否是> = 1的有效整数?

标签 c arrays string pointers

我不知道数组的大小,并且对每个元素 i 使用 isdigit(array[i]) < sizeof(array) 似乎无法正常工作。

我正在尝试:

检查每个字符是否都是数字。

将字符串转换为int。

检查它是否 > 0

int all_digits(char *string){

    short i;
    for(i=0; i < sizeof(string); i++){

        if (!isdigit(string[i])){
            //Non-digit found.
            return 1;           
        }

    }
    //All of them are digits.
    return 0;
}

第一部分是我无法获得的部分。

最佳答案

int n = strlen(string);
for(i=0; i < n; i++)

sizeof(pointer)sizeof(array)

不同

您需要传递一个有效的字符串,该字符串是以空结尾的字符串,否则 strlen() 可能会崩溃。

编辑:

或者你可以拥有

for(i=0; string[i] != '\0'; i++)

关于c - 在c中如何检查字符数组是否是> = 1的有效整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28187221/

相关文章:

概率计算

java - 使用 getchar() 从 C 程序获取 Java 标准输出时遇到问题

java - java中Arrays.sort()中的无效错误

c++ - 计算字符串 C++ 中每个字母的频率的最有效方法是什么?

c# - 如何将可从 native 写入的空字符串缓冲区传递给 C#?

c - 地址不会增加以打印字符

java - 使用另一个C/Java程序从给定的C++/Java程序中提取信息

c - 在Visual Studio中使用 "Disassembly view"调试多线程程序

php - 添加两个数组变量

java - 在 Java 中对数组进行排序并处理任何空值