(C程序)我需要有关分配的帮助,在该分配中,我必须从命令行以cmd1,cmd2,cmd3,cmd4
格式输入输入,其中每个命令都用逗号分隔。我该怎么做?有没有一种方法可以将整行作为字符串然后解析呢?
为进一步说明,用户在编译后执行以下程序:
./a.out cmd1,cmd2,cmd3,…,cmdN
命令数量不受限制。 如果有一种方法可以将参数作为一个最好的字符串,因为我可以解析程序中的命令。
我不需要解析文本的帮助;有关如何获取命令行参数的一些指导。
答案 0 :(得分:1)
运行c
程序时,main
函数将获得2个参数:
main(int argc, char *argv[])
其中第一个是命令行参数的数量,第二个是包含参数的数组。
命令行参数用空格分隔,字符串的一部分构成argv
数组。
在您的情况下,“ cmd1,cmd2,cmd3”似乎不包含任何空格,因此它们将是argv
数组中的单个元素。一旦添加空格,您将获得更多的参数。即cmd1 , cmd2
将以3个参数结尾:cmd1
,,
和cmd2
。
我想您的任务是将所有args合并为一个字符串,然后解析该字符串,并使用,
分隔符将其标记化。
请注意,argv [0]将包含您运行的程序的路径。