创建一个char数组数组

时间:2013-06-19 07:19:08

标签: c arrays

如果我有5个像这样的char数组

char a[6] = "";
char b[6] = "";
char c[6] = "";
char d[6] = "";
char e[6] = "";

我也有这部分代码用strtok获取一些令牌并将它们放入a,b,c,d,e

while(fgets(buff, sizeof(buff), fp) != NULL)
 {
    fputs(buff,stdout);
    FILE *ft = fopen("/home/pi/Desktop/data.txt","a+");
    struct tm *tp;
    time_t t;
    char s[80];
    t = time(NULL);
    tp = localtime(&t);
    strftime(s, 80, "%d/%m/%Y  %H:%M:%S", tp);
    char *pos = strchr(buff,'N');
    if (pos)
    {
         ptr = strtok(buff, "Nodo_,=:V()");
         i = 0;
       while (ptr != NULL)
         {
          if (i == 0)
             strcat(a, ptr); 
          if (i == 2)
             strcat(b, ptr); 
          if (i == 4)
             strcat(c, ptr); 
          if (i == 6)
             strcat(d, ptr); 
          if (i == 8)
             strcat(e, ptr); 
          ptr = strtok(NULL, "Nodo_,=:V()");
          i++;
         }
      printf("Results: %s, %s, %s, %s, %s\n", a, b, c, d, e);

我的问题是如何创建一个包含这5个值的新数组(例如TABLE),如

a
b
c
d
e

其次有任何方法可以将此数组转换为

a b c d e

2 个答案:

答案 0 :(得分:1)

目前尚不清楚你想要什么,但这里有一个镜头:

char (*TABLE_5x1[5][1])[6] = {
    { &a },
    { &b },
    { &c },
    { &d },
    { &e }
};

char (*TABLE_1x5[1][5])[6] = {
    { &a, &b, &c, &d, &e }
};

答案 1 :(得分:0)

定义char* TABLE[5]。然后你可以把a,b,c ......放到这个数组中作为它的元素。