连接两个字符串。。。哪错了?

img

char *fun(char *c,char *d)
{
    char *p = c;
    while(*c++);
    c--;
    while(*d++)
        *c++ = *d;
    *c = 0;
    return p;
}

主要问题是c一直在向后移动,你最后return c肯定不对了。用一个指针记录最初始的c位置才行
而且第二个while循环,你的c指针都不移动,肯定也不对
最后是第一个循环后,c已经指向了字符串结束符之后啦,需要c--向前移动一个位置,才能覆盖c本身的字符串结束符

while(*c++)之后,c指针停留在\0的后一个位置
改成while(*++c)