-1

我要做的是访问 C 中多维字符串数组中的字符串值。字符串实际上是一个数字值,我想将它存储在一个整数值中。

当我尝试按以下方式打印值时

  printf("TESTING COMMAND\n");
  printf("%d\n",commands[0][0]);

该值打印正常的期望值

但是,当我尝试使用它来初始化数组时,例如如下

  char **options[ (x - 1) ];

这给出了以下错误

  error: size of array ‘options’ has non-integer type

我期望这是因为命令数组声明如下

  char ***commands;

问题是,即使我尝试分配一个整数变量来保存这个值,我也会得到一个分段错误

 x = command[0][0];

我也尝试过strtol导致相同结果的函数。但是我不确定我是否正确使用了该功能。

有什么建议么 ?

int x;
printf("TESTING COMMAND\n");
printf("%d\n",commands[0][0]);
x = command[0][0];
printf("Creating options of size = %d\n", x );
4

2 回答 2

0

试试 sscanf 格式化功能。

它的工作方式类似于 - void sscanf(char *arr, "format-specifier", address of var 来存储格式化的值。)

例如:假设我们有 - char *arr = "123" declare int val;

然后- sscanf(arr, "%d", &val); val 将等于 123。

于 2019-10-26T05:55:03.863 回答
-1

您正在寻找的功能可能是atoi()

x = atoi(commands[0][0]);

它将字符串解析为数字并将其作为int. 您需要包括stdlib.h.

于 2015-04-04T00:22:12.250 回答