在c中使用带有命令行参数的if语句

Ant*_*sio 1 c command-line if-statement

我在使用if语句处理命令行中的参数时遇到问题.我得到一个错误说,'每次指针和整数('char*'和'int')之间的比较.任何帮助将不胜感激.以下是我必须做的描述:

该程序将从命令行读取参数并将其转换为相应月份的名称.即如果您使用以下参数运行程序:

它将打印以下消息:

这个月是'四月'.

#include <stdio.h>

int main(int argc, char *argv[]) {
    if(argv[1] == 1){
        printf("You entered the number 1.");
    } else {
        printf("You entered a different number.");
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

dbu*_*ush 5

在命令行上传递的参数是字符串,因此您需要使用strcmp它们来比较它们.

int main(int argc, char *argv[]) {
    if(argc > 1 && (strcmp(argv[1],"1") == 0)){
        printf("You entered the number 1.");
    } else {
        printf("You entered a different number.");
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • @AntonioOcasio您可能还想使用`atoi`或`strtol`将字符串转换为整数,如果这是您想要使用的. (2认同)