字符串比较的空白问题

dem*_*0de 0 c linux

我编写了一个比较字符串的简单应用程序。我的问题是空格。这是示例代码:

int main(int argc,char *argv[]) {  

    if(strcmp(argv[1], "go up")==0){
        printf("up up and away\n");
    } 

    if(strcmp(argv[1], "down")==0){
        printf("down you go\n");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在用 编译它后gcc -o try try.c,我在终端中运行它:

./try go up  // doesn't show anything
./try down //prints down you go
Run Code Online (Sandbox Code Playgroud)

Linux 终端中可以使用空格吗?

squ*_*guy 5

是的,你只需要逃避它。在您的情况下,程序将“向上”视为两个参数。

尝试这个:

./try go\ up
Run Code Online (Sandbox Code Playgroud)