如何重新排序字符数组中的位置
How to reorder places in char array
我对此有疑问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] 和行 [k+1]...
你不能给数组赋值,你需要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]
.
我对此有疑问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] 和行 [k+1]...
你不能给数组赋值,你需要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]
.