我已经拥有C语言的这段代码,是一个由逗号分隔的15个数据的字符串,代码将字符串用逗号分隔并将每个数据存储在一个名为array []的单个变量中,问题是如果在最后一个逗号之后没有数据,那么变量x15 = 0,但如果在最后一个值之后有一个值,则将该值转换为int。我打印数组[15]的值来验证,这是null,所以我出了一个条件,但不工作,该程序编译后只是中断。null在C语言中比较
char buf[] ="¶bL0 L3,01,+08590323,-079343001,010215,00000000000000,-tN,000,012689997,001219456,000,7FF2,C07F,0,4,";
printf("\n \n string=[%s]\n\n", buf);
int i = 0;
int u;
char *p = strtok (buf, ",");
char *array[16];
char *y15;
while (p != NULL)
{
array[i++] = p;
p = strtok (NULL, ",");
}
for (i = 0; i <16; ++i){
if(array[15] == NULL){
wbt.x15=0;
}else{
wbt.x15=atoi(array[15]);
}
//printf("data: [%s]\n", array[i]);
}
2016-09-27
O.nunez
+0
你可以重写你的问题?有段落是有原因的。 –
+0
为什么不设置合理的断点, G。在'for'循环的开始处,以及'array'上的监视器,然后逐步执行程序?你会看到数组的值是如何改变的。 –
+0
编译后程序崩溃了......一旦编译完程序,你做了什么?程序编译后不会简单地中断,它们会破坏你的大脑,或者当你写它们时。但是如果你编译了一个程序,它不会自发地破坏。 –