在输入两个点的情况下应该打印否?

标签 c

第一次在这里发帖,代码有问题。 我希望它在超过 1 个点时打印 no,例如“2..5”。 尝试放置以下 if 语句:

if(num[i] == '..'){
printf("no \n);}

但是没有成功。 我是编程新手!

    #include <stdio.h>
    #include <string.h>

    int main(int argc, char *argv[])
    {
        char *num = argv[1];

        if (num[0] == '+' && strlen(num) >= 2 || num[0] == '-' && strlen(num) >= 2 || num[0] == '.' || (num[0] >= '0' && num[0] <= '9'))
        { 
            for (int i = 1; i < strlen(num); i++) { 
                if (!(num[i] == '.' || (num[i] >= '0' && num[i] <= '9')) ) {  
                    printf("no \n"); 
                }
            }
            printf("yes \n");                  
        } else {
            printf("no \n");
        }
    }
}

最佳答案

使用这个:

if(!(strcmp(num[i], ".."))) 

代替

if(num[i] == '..')

关于在输入两个点的情况下应该打印否?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42178463/

相关文章:

c++ - 使用 EBP 从堆栈中获取参数

arrays - 为什么 C 数组元素(貌似)存储在 4 个 block 中?

c - pthreads中pthread_t的数据类型?

c - 在字符串中查找字符

c - `(void) inotify_rm_watch(fd, wd)` 和 `inotify_rm_watch(fd, wd)` 之间的区别

c++ - 使用 ctypes 向 C/C++ 库提供函数的外部定义

c - opendir 不接受字符串变量,但接受纯字符串

c++ - memcpy() 给我段错误

c - 如何使用循环展开和重新关联?

编译器对一段简单的代码显示 "Illegal Instruction"