【发布时间】:2021-03-13 23:53:30
【问题描述】:
我知道在传递命令参数时,例如a.out ls -l pwd cat hello.txt ,argv[0] 是a.out,argv[1] 是ls,argv[2] 是-l 等等。
我想传递命令参数,以便它们用逗号而不是空格分隔
所以在命令a.out ls -l, pwd, cat hello.txt:argv[1] 将是ls -l 和argv[2] 将是pwd 和argv[3] 将是cat hello.txt
我当前的代码:
int main (int argc, char* argv[])
{
int i;
char str[100] = "";
char* token;
for (i = 1; i < argc; i++)
{
strcat(strcat(str, " "),argv[i]); // stores arguments in a string
token = strtok (argv[i], ", "); // seperates arguments by comma
printf("%s\n",token);
}
return 0;
}
它的输出:
ls
-a
pwd
cat
hello.txt
如果我做得正确,输出应该是:
ls -a
pwd
cat hello.txt
【问题讨论】:
-
如果您需要其中包含空格的内容作为参数,请用引号将其括起来。添加逗号不会改变命令行在您的程序看到之前的解析方式。
-
它应该可以带引号或不带引号
标签: c string command-line arguments command-line-arguments