转换和使用char **和char *

时间:2013-10-11 00:19:04

标签: c pointers

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

process_raw_cmdline(char** line)
{
      //
}

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

1 个答案:

答案 0 :(得分:1)

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

binary-name arg1 arg2 "arg3 arg3" arg4

在此示例中,arg3 arg3是单个实体(您不会获得引号)。

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

  • argv [0] - > binary-name
  • argv [1] - > arg1
  • ...