将两个字符串联到每个索引中的字符数组中

时间:2018-05-11 19:38:09

标签: c arrays

我有一个名为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两个值。

1 个答案:

答案 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++;
}

额外: 有一个棘手的转移和存储版本,但这有点复杂,不推荐。