我写了一个比较字符串的简单应用程序。我的问题是白色空间。这是示例代码:
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;
}
现在用gcc -o try try.c
编译后,我在终端中运行它:
./try go up // doesn't show anything
./try down //prints down you go
是否可以在Linux终端中使用空格?
答案 0 :(得分:4)
是的,你只需逃避它。在你的情况下,程序会看到"上升"作为两个论点。
试试这个:
./try go\ up
答案 1 :(得分:3)
是否可以在linux终端中使用空格?
尝试引用空格:
./try 'go up'
附注:在使用argc
中的任何内容之前,您应该先检查argv
。
答案 2 :(得分:2)
可以使用Linux终端的空白区域。
尝试以下方法:
./try "go up"
./try go\ up
对于这两种情况,系统都应该按照您的预期进行响应。
标准shell会根据空白区域自动将行拆分为argv
数组。引号告诉解析器将文本视为单个字符串,允许访问“Program Files”之类的目录。反斜杠会占用空间,告诉解析器将其视为特殊字符,而不是用于分割行的空格。