【发布时间】:2021-09-14 13:47:18
【问题描述】:
我正在尝试以下代码,但得到了意想不到的结果。
//the first element in argv[] is a
int main(int argc, char *argv[]) {
char a;
if (*argv == "a")
{
printf("a");
}
}
执行后我什么也没得到,这意味着条件*argv++ == "a" 为假。那为什么呢?
【问题讨论】:
-
C 不允许将数组内容与“==”进行比较。您必须遍历数组并比较每个元素。
-
有一个库函数
strcmp()会为你做这件事。if(strcmp(argv[1], "a") == 0) -
c中不能比较字符串,必须使用
strcmp比较两个字符串。
标签: c command-line-arguments c-strings string-comparison