在c中将字符串转换为int

时间:2015-04-03 22:48:45

标签: c linux string multidimensional-array strtol

我想要做的是访问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 );

2 个答案:

答案 0 :(得分:0)

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

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

它将字符串解析为数字并将其作为int返回。您需要添加stdlib.h

答案 1 :(得分:0)

尝试sscanf格式化功能。

它的作用类似于-void sscanf(char * arr,“ format-specifier”,用于存储格式化值的var地址。)

例如:   说我们有-char * arr =“ 123”   声明int val;

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