use*_*767 1 c program-entry-point function
当我给出参数print时,为什么我的代码在给我回复"Not a valid command"?
int main(int argc, char *argv[]) {
printf("Argument 2 er %s\n", argv[1]);
if(argv[1] == "print") {
printf("Print kommando kalt");
} else if(argv[1] == "random") {
printf("Random kommando kalt");
} else if(argv[1] == "replace") {
printf("Replace kommando kalt");
} else if(argv[1] == "remove") {
printf("Remove kommando kalt");
} else if(argv[1] == "len") {
printf("øem kommando kalt");
} else {
printf("Ingen gyldig kommando\n");
}
}
Run Code Online (Sandbox Code Playgroud)
Kon*_*lph 13
您无法使用比较C字符串==.这只做指针比较.您需要使用strcmp:
if (strcmp(argv[1], "print") == 0) …
Run Code Online (Sandbox Code Playgroud)
因为你无法比较C中的字符串.
你需要使用:
if(strcmp(argv[1], "print") == 0)
printf("Print kommando kalt\n");
Run Code Online (Sandbox Code Playgroud)
等等.
另外,请确保在没有argv[1]确保它确实存在且有效的情况下不能访问; 如果你的程序没有参数调用它将是NULL.您可以使用值argc来确定您获得的参数数量.