假如我定义了一个字符串数组a[10][20],我想将
a[0]和a[1]两个字符串(字符串等长)交换,我该怎么操作?😭
方法1
char a[10][20];
char t[20];
//省略数组a赋值
strcpy(t,a[0]);
strcpy(a[0],a[1]);
strcpy(a[1],t);
方法2
char a[10][20];
char* b[10];
//省略数组a赋值
int i;
char *t;
for(i=0;i<10;i++)b[i]=a[i];
t=b[0];
b[0]=b[1];
b[1]=t;
//最终b中是排序后的顺序,a本身顺序并不改变
再定义一个字符串,假设为a[2]
先把a[0]复制给a[2]
然后把a[0]的所有数据改为a[1]
最后把a[2]赋值给a[1]
供参考:
#include <stdio.h>
#include <string.h>
int main()
{
char a[10][20] = { "abcd","1234" }, tmp[20];
puts(a[0]);
puts(a[1]);
strcpy(tmp, a[0]); //交换
strcpy(a[0], a[1]);
strcpy(a[1], tmp);
puts(a[0]);
puts(a[1]);
return 0;
}