1

如果我有 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
4

2 回答 2

1

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

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

char (*TABLE_1x5[1][5])[6] = {
    { &a, &b, &c, &d, &e }
};
于 2013-06-19T07:37:32.043 回答
0

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

于 2013-06-19T07:35:49.307 回答