C 将数组作为命令行参数传递的最佳方法?

C 将数组作为命令行参数传递的最佳方法?,c,arrays,command-line-arguments,C,Arrays,Command Line Arguments,我希望能够将数组作为命令行参数/选项参数传递,即,当程序运行时,例如,-a[1,2,3],我希望选项参数被解析为大小为3的数组,元素为1,2,3。该数组在合理的范围内具有任意长度。如果这导致了一个更方便的解决方案,则可以定义不同的语法——以上只是我认为自然的一个例子。 显然,可以去掉[]括号,将字符串拆分,然后用atoi/strtol解析每个数字并将其打包成一个数组,但我想知道是否有更简单的方法来实现这一点 编辑:我希望能够传递多个数组。因此,使用./main 1 2 3不是一个选项。argv已

我希望能够将数组作为命令行参数/选项参数传递,即,当程序运行时,例如,-a[1,2,3],我希望选项参数被解析为大小为3的数组,元素为1,2,3。该数组在合理的范围内具有任意长度。如果这导致了一个更方便的解决方案,则可以定义不同的语法——以上只是我认为自然的一个例子。 显然,可以去掉[]括号,将字符串拆分,然后用atoi/strtol解析每个数字并将其打包成一个数组,但我想知道是否有更简单的方法来实现这一点


编辑:我希望能够传递多个数组。因此,使用./main 1 2 3不是一个选项。

argv已经是一个数组。你为什么不把论点隔开呢?您可以将包含在两个短划线选项之间的argv元素解释为数组或参数列表。问题主要是命令行解释程序如何解析用户输入。通常情况下,空格在参数的分隔中占主导地位。但引语可能会起到过度作用。1 2 3可能是一个参数。依我看,你原来的提议很好。就像我说的,格式可能会改变——不管怎样,1,2,3和[1,2,3]之间没有太大的区别。@TheParamagneticCroissant:如果你的主要问题是问题的标题,这将需要同样的工作,减去剥离和拆分参数字符串,使用1233作为命令行参数是最好的。输入命令行最简单。在C/C++程序中解析是最容易的。