例如,如果用户在命令行中输入
match "hello" test*in
表示在所有名为“test”的.in类型文件中查找“the”。
bool containMany=false;
int i;
for(i= 0; arguments[i]; i++){
printf("ARGUMENTS %s\n",arguments[i]);
if(strstr(arguments[i],"*")){
containMany=true;
break;
}
}
但它不起作用。参数是:
ARGUMENT match
ARGUMENT hello
ARGUMENT test0.in
ARGUMENT test1.in
ARGUMENT test2.in
那么当用户输入“*”时,我如何让 containMany 变为 true 呢?
最佳答案
那是因为您的 shell 会自动进行 glob 样式的替换。如果您不希望 shell 这样做,请将输入参数括在单引号中或使用反斜杠。
如果你的工作目录有文件 A 和 B 那么这个表达式:
test *
将替换为
test A B
在测试执行之前。
另一方面,如果你像这样运行:
test '*'
或者像这样:
test \*
然后将没有 shell 替换,您的程序将真正看到星星。
关于c - C中如何判断用户在命令行输入 "*"表示多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21666302/