中易网

C语言中怎样交换两个字符串

答案:3  悬赏:60  
解决时间 2021-02-12 19:37
C语言中怎样交换两个字符串
最佳答案
不同的情况做法是不同的。
1. 如果是字符数组,char a[50]="String A"; char b[50]="String B";  则
#include<stdio.h>
void strexchg(char *a, char *b){
    char c;
    while(*a && *b){
        c= *a; *a = *b; *b = c;
        a++; b++;
    }
    c= *a; *a = *b; *b = c;
    if(*a)
        do *++a = *++b; while(*b);
    else if(*b)
        do *++b = *++a; while(*a);
}
int main(){
    char a[50]="String A"; char b[50]="String B";
    printf("Before Exchange :\n\tString A is \"%s\"\n\tString B is \"%s\"\n",a,b);
    strexchg(a,b);
    printf("After Exchange :\n\tString A is \"%s\"\n\tString B is \"%s\"\n",a,b);
 return 0;
}2 如果两个都是字符指针变量,char *a="String A"; char *b="String B"; 则
#include<stdio.h>
void strexchg(char **a, char **b){
    char *c;
    c=*a; 
    *a=*b;
    *b=c;
}
int main(){
    char *a="String A"; char *b="String B"; 
    printf("Before Exchange :\n\tString A is \"%s\"\n\tString B is \"%s\"\n",a,b);
    strexchg(&a,&b);
    printf("After Exchange :\n\tString A is \"%s\"\n\tString B is \"%s\"\n",a,b);
 return 0;
}
全部回答
#include<stdio.h> #include<string.h> int main() {     char a[],b[],temp[];     gets(a);     gets(b);     strcpy(temp,a);     strcpy(a,b);     strcpy(b,temp);     return 0; }
字符串a,与字符串b交换。 这样。 ....... char *c; strcpy(c,a); strcpy(a,b); strcpy(b,c); ........... 成功交换。 如果不用库函数,那么也好办。 自己写个串拷贝函数 str_cpy(char *a,char *b) //假设是将b拷贝到a中,注意不是交换 { while(*b!='\0') //如果字符串b未结束 *(a++)=*(b++);//一位位覆盖进去 *a='\0';//加上结束标志 } 将上面的strcpy替换成这个函数 也成。 测试成功 那么整个程序可以这么写。 void str_cpy(char *a,char *b) //假设是将b拷贝到a中,注意不是交换 { while(*b!='\0') //如果字符串b未结束 *(a++)=*(b++);//一位位覆盖进去 *a='\0';//加上结束标志 } void swap(char *a,char *b) { char *c; str_cpy(c,a); str_cpy(a,b); str_cpy(b,c); } int main() { char *str1="123456",*b="654321" swap(str1,str2);//完成交换 ......... return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
班主任免责声明怎么写
逸音管乐学苑在什么地方啊,我要过去处理事情
通过淘宝首页搜索 找到一个宝贝 怎么知道他设
16款奥迪A4L个性运动型,换个带拨片的方向盘
DESILOCOR我想知道这个在什么地方
百合花的习性?
好处的近义词是什么
关于“12.30”事件写一篇以“珍爱生命,感恩父
岜仔山这个地址在什么地方,我要处理点事
英雄联盟上的吓老子一跳,在哪里可以下载
女生进,敏感多疑,要怎样才能消除?
新增的信息 用英语怎么说
卖鞋子销售技巧和话术
求数列通式,2,-4/5,1/2,-4/11,2/7,-4/17
铭族净水机多少钱
推荐资讯
手机没有root可以恢复删除的文件吗
山东雪山生态旅游开发管理有限公司在什么地方
《开心鬼放暑假》中最后在晚会上康森贵跳舞时
什么好方法可以劝爸爸借酒借赌
福居苑地址有知道的么?有点事想过去
浙北水晶矿石展览馆在哪里啊,我有事要去这个
淞凇洗车店这个地址在什么地方,我要处理点事
王蒙口腔专科这个地址在什么地方,我要处理点
桑蚕丝和人造丝的区别是什么?面料成分里面应
金庸水浒传主角的资质和能力成长是什么关系?
微信朋友圈首发信息功能被限制,只能登录怎么
炭火蛙居怎么去啊,有知道地址的么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?