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