如何重新排序char数组中的位置

时间:2015-06-27 13:05:52

标签: c string multidimensional-array swap

我对此lines[k] = lines[k+1];

有疑问

这是我尝试做的事情:

char lines[MAXLINES][BUFSIZ];    
   for(k = 0;k < i;k++){
      char * tmp = lines[k];
      lines[k] = lines[k+1];
      lines[k+1] = tmp;
      change = 1;
    }

任何人都可以帮我吗?我只想在数组中用行[k + 1]交换行[k] ......

1 个答案:

答案 0 :(得分:3)

您无法分配数组,需要strcpy()

char lines[MAXLINES][BUFSIZ]

for (int k = 0 ; k < i ; ++k)
 {
    char tmp[BUFSIZ];
    strcpy(tmp, lines[k]);
    strcpy(lines[k], lines[k + 1]);
    strcpy(lines[k + 1], tmp);
    change = 1;
 }

由于lines[k]是一个数组,您无法分配它,但您可以将lines[k]的内容复制到临时缓冲区,然后将lines[1 + k]的内容复制到lines[k]并最终将tmp的内容复制到lines[1 + k]