#include
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;
}
请问上述程序中哪里错误导致结果错误?
1.把m++;放到p1--后面
2.在执行最后一个while之前要先执行p1++,否则位置不对
我认为应该先把str1向右移,str1每个字符间留够str2字符串的位置,然后再插入str2