c - 如何在 C 命令行中采用逗号分隔的输入参数?

标签 c command-line

(C 程序)我需要有关作业的帮助,其中我必须以 cmd1,cmd2,cmd3,cmd4 格式从命令行获取输入,其中每个命令用逗号分隔。我怎样才能做到这一点?有没有办法可以将整行作为字符串然后解析它?

进一步解释一下,用户编译后执行程序是这样的:

./a.out cmd1,cmd2,cmd3,…,cmdN

命令数量不受限制。 如果有一种方法将参数作为单个字符串那就最好了,因为我可以解析程序中的命令。

我不需要帮助解析文本;只是关于如何获取命令行参数的一些指导。

最佳答案

当您运行c程序时,main函数获取2个参数:

 main(int argc, char *argv[])

其中第一个是命令行参数的数量,第二个是包含参数的数组。

命令行参数由空格分隔,字符串的一部分构成argv数组。

在您的情况下,“cmd1,cmd2,cmd3”似乎不包含任何空格,因此它们将是 argv 数组中的单个元素。一旦添加空格,您将获得更多参数。即 cmd1 、 cmd2 最终会出现 3 个参数:cmd1cmd2

我猜你的任务是将所有参数合并到一个字符串中,然后解析该字符串,并通过 , 分隔符对其进行标记。

请注意,argv[0] 将包含您运行的程序的路径。

关于c - 如何在 C 命令行中采用逗号分隔的输入参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53245068/

相关文章:

c - 指针 union 的动态分配 - C

c - 循环体中声明的变量在迭代过程中是否被保留?

c++ - 为什么在 C++ 中允许对 const 全局变量进行多重定义,而在 C 中却不允许?

git - 如何将以前的存储库版本克隆到本地计算机?

python - windows cmd 控制台搞乱了 python 脚本的执行

c - 带空格的左pad printf

command-line - 使用一行 shell 命令多次运行程序

testing - 如何从命令行编译和运行QTP脚本

vb.net - 防止控制台返回

c++ - 如何在 Linux 中为系统托盘编写应用程序