两个字符数组交换

来源:百度知道 编辑:UC知道 时间:2024/06/25 05:11:18
用C语言编译,
用指针交换两个字符数组里面的内容。
非指针就别写了
比如a[10]="china",b[10]="zhong",在定义一个或多个指针,使得a[10],b[10]交换

只写主要部分,仅供参考

myswap(char *a,char*b,int n)
{char temp;
for(int i=0;i++;i<n)
{temp=*(a+i);
*(a+i)=*(b+i);
*(b+i)=temp;
}
}
我觉得直接交换指针更方便,如果上下文允许,可以考虑
char a[10],b[10],*temp;
temp=a;
a=b;
b=temp;

完整运行通过。如下:
#include <iostream>
using namespace std ;

void Swap(char *a,char*b,int n)
{
char temp;
int i ;
for ( i = 0; i < n; i++ )
{
temp=*(a+i);
*(a+i)=*(b+i);
*(b+i)=temp;
}
}

int main()
{
char a[10]="china", b[10]="zhong" ;
Swap( a, b, 10 );
int i ;
for ( i = 0 ; i < 10 ; i++ )
{
cout << *(a+i) ;
}
cout <<endl;
for ( i = 0 ; i < 10 ; i++ )
{
cout << *(b+i) ;
}
cout <<endl;
return 0 ;
}

直接交换指针是错误的,它是常量

char *a,*b,*t;
strcpy(t,a);
strcpy(a,b)