用指针如何将两个字符数组里的字符进行交换?

请编写change函数,具体要求如下:函数输入:字符数组a、b函数的处理:将字符串a的所有字符传送到字符b中,要求每传递三个字符后再存放一个空格。函数的输出:无例如字符串... 请编写change函数,具体要求如下:
函数输入:字符数组a、b
函数的处理:将字符串a的所有字符传送到字符b中,要求每传递三个字符后再存放一个空格。
函数的输出:无

例如字符串a为"abcdefg",则字符串b为" abc def g"提示:
1)函数参数为两个字符类型的指针,一个接收字符串a的地址,一个接收字符串b的地址
2)读取字符串a中所有字符,依次存入b中,每存入3个字符后,存放一个空格。

main.c
1 #include<stdio. h>
2//请在下方编写change函数, 实现功能34
5 int main()

char a[]= hello world", b[20];change(a, b) ;
printf("%s,b) ;return 0;
展开
 我来答
折柳成萌
高粉答主

2018-11-05 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6162万
展开全部
它与简单变量的交换方法相同,但是字符串的传递是通过系统函数实现的。例如:
char str1[20]={"beijing"},str2[20]={"qindao"}, temp[20];
strcpy(str1,temp); strcpy(str2,str1); strcpy(temp,str2);
strcpy 函数功能是字符串复制,将第一个参数指定的字符串复制到第二个参数指定的位置
两个参数都是字符串首地址。
使用strcpy需要 #include<string.h>
希望能帮助你!
czy7812
2019-06-16 · TA获得超过2670个赞
知道小有建树答主
回答量:518
采纳率:88%
帮助的人:187万
展开全部
这个没有办法。因为数组的数组名虽然本质上是一个指针,但它是一个指针常量,也就是说a[0]是指针没错,但a[0]=a[1]这样是错误的。因为无法对a[0]重新赋值。所以你说的这种没有办法实现,这是C/C++的规则限定的。除非你用指针p,q来代替a[0]、a[1]。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l7722526
2018-11-05 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3735万
展开全部
方法一用来交换字符串的原理是改变指针数组成员指向的地址,这没有问题。 但是如果把line声明成2维数组,数组的地址值是不能随意修改的,所以,你无法强制把line[0]指定到其他地方。 可把方法二的字符串交换处理作如下改动: { char t[10]; int i,j; for(i=0;i<n-2;i++) { for(j=n-1;j>i;j--) if(strcmp(v[j-1],v[j])>0) { /*t=v[j];v[j]=v[j-1];v[j-1]=t;*/ strcpy(t, v[j]); strcpy(v[j], v[j-1]); strcpy(v[j-1], t); } }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
藤原子大雄
2018-11-05 · TA获得超过7196个赞
知道大有可为答主
回答量:6977
采纳率:82%
帮助的人:1744万
展开全部
C语言例子#include "Stdio.h" #define N 50int main(void) { char ch[N],*p,*q,t; gets(ch); q=p=ch; while(*p) { p++; } p--; while(q!=p) { t=*q; *q=*p; *p=t; q++; p--; if(p+1==q) break; } puts(ch); getch(); return 0; }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式