#include <stdio.h>
#include <string.h>
main()
{
char a[50],b[50];
gets(a);
gets(b);
char *p,*q;
p=a;
q=b;
while (*p++);
*p–;
while (*q)
{
*p++=*q++;
}
*p=’\0’;
printf("%s\n",a);
}
这是指针的应用,把当前值赋值给另一个指针。
*p++ = *q++,相当于
*p = *q; //字符复制
p = p+1;//目标指针后移一位
q = q+1;//源指针后移一位
代码是否贴错了?*p–;这个应该错了吧。单单就:
while (*q)
{
*p++=*q++;
}
这块代码来说,while条件*q就是取b[i]的值,如果不是0,就执行循环,0也就意味着字符串结束
while代码块中的*p++=*q++,相当于*p = *q; p++;q++,更进一步就是a[j] = b[i]; i++;j++,就相当于把b第字符串拷贝到a中。
以上,如有帮助,请采纳一下,谢谢。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632