我有一个名为s2的字符串,如下所示:' 12 12 13 14'长度未定义,我希望将值存储到一个字符数组中,问题是我一个接一个地存储,如1 2 1 2,我想像12 | 12 | 13 | 14一样存储两个。 这是字符,因为我从文件中提取这些字符串,但是在我之后 改为整数。
这是我的代码:
while(s2[i]!='\0')
{
if(s2[i]==' ')
i++;
MEM[j]=*(s2+i);
i++;
j++;
}
MEM是存储值
的数组我的问题是如何在每个索引中存储数组MEM两个值。
答案 0 :(得分:1)
有两种方法可以解决这个问题。
首先,有2个字符串:
char MEM[size][2];
while(s2[i]!='\0')
{
if(s2[i]==' ')
i++;
MEM[j][0]=*(s2+i); // *(s2 + i) is the same as s[i]
i++;
MEM[j][1]=*(s2+i); // *(s2 + i) is the same as s[i]
i++;
j++;
}
其次,将数字转换为int
类型:
int MEM[size];
while(s2[i]!='\0')
{
if(s2[i]==' ')
i++;
MEM[j]=atoi(*(s2+i));
i+=3;
j++;
}
额外: 有一个棘手的转移和存储版本,但这有点复杂,不推荐。