qwertyui9000 2022-12-19 00:24 采纳率: 0%
浏览 111

如何用C语言编写join()函数?

#include <stdio.h>
void join(char *str1,char *str2)
{
    char *p1,*p2,*p3;
    int len1,m=0;
    len1=0;
    p1=str1;
    p3=str1;
    while(*p1!='\0')
    {
        len1++;
        p1++;
    }
    p2=str2;
    while(p1>=p3)
    {
        m++;
        *(p1+len1-m)=*p1;
        p1--;
    }
    while(*p1!='\0')
    {
        p1++;
        *p1=*p2;
        p1++;
    }
}
int main(){
char s1[100]="ABCD";
char s2[100]="*";
join(s1,s2);
printf("%s\n",s1);
    return 0;
}
运行结果BCD
我想要达到的结果ABC*D

请问上述程序中哪里错误导致结果错误?

  • 写回答

3条回答 默认 最新

  • 於黾 2022-12-19 09:50
    关注

    1.把m++;放到p1--后面
    2.在执行最后一个while之前要先执行p1++,否则位置不对

    评论

报告相同问题?

问题事件

  • 创建了问题 12月19日