如何确定使用C语言在终端中输入的参数的值

问题描述

我想写一个程序,根据提供的参数执行不同的功能

例如:

$ ./program -a //line 1
$ ./program -b //line 2

如果我在终端输入1行,我希望它打印“ Hi” 如果我在终端输入2行,我希望它打印“再见”

这是我当前的逻辑,在C语言中不起作用:

int main (int argc,char *argv[])
{
    if (argv[1] == "-a"){
        printf("Hi");
    } else if (argv[1] == "-b")
    {
        printf("Bye");
    }

有人可以帮助我修复我的代码以实现我的目标吗?

谢谢!

解决方法

您应该使用strcmp()来比较C语言中的字符串。

#include <stdio.h>
#include <string.h> /* for strcmp() */

int main (int argc,char *argv[])
{
    if (strcmp(argv[1],"-a") == 0){
        printf("Hi");
    } else if (strcmp(argv[1],"-b") == 0)
    {
        printf("Bye");
    }
    return 0;
}