0

我有一个函数调用,它将命令行作为参数传递,定义如下:

process_raw_cmdline(char** line)
{
      //
}

我想最终通读这一行并将其分解以将部分行用作其他事物的参数。采取这一行并保存由空格分隔的不同“单词”的好方法是什么。我最终还必须将此行的部分转换为整数。

4

1 回答 1

1

通常,当您以 char** 形式获取命令行时,它已经在命令行上分解为单个单词,或者更好的单个实体:

binary-name arg1 arg2 "arg3 arg3" arg4

在这个例子中,arg3 arg3是一个单一的实体(你不会得到引号)。

但是,要正确阅读 char**,您需要知道字数!这就是为什么在 C 程序中,main()使用参数 argc(字数)和 argv(char**)调用。然后您可以访问 argv[0] ... argv[argc-1]。在我们的示例中:

  • 参数 [0] ->binary-name
  • argv[1] ->arg1
  • …</li>
于 2013-10-11T00:26:49.400 回答