为什么这不起作用? 当我尝试使用-l或-s作为第一个参数时,if语句不会使用。他们总是去发表其他声明。
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
if (argv[1] == "-l")
{
printf("Yay!\n");
}
else if (argv[1] == "-s")
{
printf("Nay!\n");
}
else
{
printf("%s\n", argv[1]);
}
return 0;
}
答案 0 :(得分:10)
您无法使用==
运算符比较字符串 - 请改用strcmp()
。
通过使用==
比较字符串,您要比较char *
指针的地址,而不是字符串值。
答案 1 :(得分:4)
在C字符串中通过strcmp函数进行比较。相反,你比较指针。所以:
if (strcmp(argv[1],"-l") == 0)
{
printf("Yay!\n");
}