c语言编程,使用指针做为函数参数,编写一个字符串交换函数,实现两个字符串内容的交换 急求,多谢!

在主函数中给出两个字符数组,调用交换函数交换两个字符串,然后在主函数中分别输出交换前后的两个字符串,两个字符串用空格隔开。例如开始时:
char a[20]=“hello”;
char b[20]=”how are you”;
交换前后a和b的内容分别是:
hello how are you
how are you hello
注意:有程序前缀
前缀代码:
#include <stdio.h>
void main()
{
char a[20];
char b[20];
void swap(char *, char *);
gets(a);
gets(b);
printf("%s %s\n", a, b );
swap(a,b);
printf("%s %s\n", a, b );
}

#include <stdio.h>
void swap(char *a, char *b){
    int ch;
    while(*a && *b)
        ch=*a,*a=*b,*b=ch,a++,b++;
    if(*a){
*b++=*a,*a++='\0';
while(*b++=*a++);
}
else if(*b){
*a++=*b,*b++='\0';
while(*a++=*b++);
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-23
#include
void swap(char *a, char *b){
int ch;
while(*a && *b)
ch=*a,*a=*b,*b=ch,a++,b++;
if(*a){
*b++=*a,*a++='\0';
while(*b++=*a++);
}
else if(*b){
*a++=*b,*b++='\0';
while(*a++=*b++);
}
}