在C中将一个字符串分成一个子字符串,然后将该子字符串分成另一个字符串

时间:2018-12-05 06:25:14

标签: c

我必须阅读在Linux上运行程序时引入的参数。

./myprog 10 20 30, 20 54 12, 31 42 51

我在找出如何将参数分成一个子字符串然后在另一个字符串中将该子字符串分离时遇到问题。

10 20 30, 20 54 12, 31 42 51

我想将此字符串分隔为另一个以“,”为分隔符的字符串,然后将该子字符串分隔为另一个以“”为分隔符的字符串。

 a[0]="10 20 30"
 a[1]="20 55 12"
 a[2]="31 42 51"

然后我希望它像这样:

 b[0]="10" b[1]="20" b[2]="30" and so on...

1 个答案:

答案 0 :(得分:0)

在这里,我编写这段代码将参数分成一个子字符串。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char *str = "10 20 30, 20 54 12, 31 42 51";
    char **a = calloc(sizeof(char*),strlen(str));
    int x = 0;
    int y = 0;
    int i = 0;

    while (str[i] != '\0')
    {
        x = 0;
        a[y] = calloc(sizeof(char),9);
        while(str[i] != ',' && str[i] != '\0')
        {
            a[y][x] = str[i];
            i++;
            x++;
        }
        y++;
        i += 2;
    }
    //this code below for test
    y--;
    for (int t = 0; t < y; t++)
            printf("%s\n",a[t]);

}

现在尝试制作另一个:)。