将二维数组中的字符串复制到一维数组中

标签 c arrays

我在处理 C 中的指针时遇到了一些麻烦。

我的代码从文本文件中加载一大串字符

1378251369.691375   84:1b:5e:a8:bf:7f   68:94:23:4b:e8:35   100
1378251374.195670   00:8e:f2:c0:13:cc   00:11:d9:20:aa:4e   397
1378251374.205047   00:8e:f2:c0:13:cc   00:11:d9:20:aa:4e   397
1378251374.551604   00:8e:f2:c0:13:cc   00:11:d9:20:aa:4e   157
1378251375.551618   84:1b:5e:a8:bf:7c   cc:3a:61:df:4b:61   37

然后将每一行复制到一个数组中(fullinfo[200][BUFSIZ])。

我然后尝试评估最后两条信息并将它们放入自己的数组中 例如

 cut2line[0] = 68:94:23:4b:e8:35    100
 cut2line[1] = 00:11:d9:20:aa:4e    397

为此我尝试了 strcpy 和 memcpy

     fullinfo[200][BUFSIZ];
     char cutline[BUFSIZ];
     char cut2line[BUFSIZ];

      while( fgets(line, sizeof line, pi) != NULL)  {

            strcpy(fullinfo[infoline], line);

             strcpy(cutline,fullinfo[infoline]);
             memcpy(cut2line,*cutline[25],100);
             printf("%s",cutline);      
             infoline ++;

    }

两者都给其中一个

invalid type of argument of unary '*' (have 'int')

或涉及错误指针类型的内容。

感谢任何帮助。

编辑以澄清:cutline 包含输入文件中的整行,这是正确的,但是当我尝试将行的第二部分复制到它自己的数组中时,我得到了错误

最佳答案

while( fgets(line, sizeof line, pi) != NULL)  {

        strcpy(fullinfo[infoline], line);

         strcpy(cutline,fullinfo[infoline]);
         //memcpy(cut2line,*cutline[25],100); This line is what's causing your issue I think.
         memcpy(cut2line,&cutline[25],100); //Use an & 
         printf("%s",cutline);      
         infoline ++;

}

关于将二维数组中的字符串复制到一维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898066/

相关文章:

c - SIMD 数组添加任意数组长度

c++ - 包装 C API 以供 C++ 使用的策略

python - 在 numpy 中采用特定间距的数组差异

ios - 如何根据设备语言使用不同的数组?

java - 在 2d 数组 Java 中存储 ArrayList

c - 使用堆栈反转字符串对我不起作用

c - 二维阵列矩阵无法正确打印

c - 在 C 中使用结构访问数组

php - 根据单独数组的顺序对数组进行排序

Php,如何根据今天的天气选择阵列?