C语言中自建字符串拼接函数,结果错误!!求指教

2025-03-07 06:36:39
推荐回答(4个)
回答1:

你自己写的strcat函数在第一次while中一直p++到了'\0'的后一位(因为p++是先赋值再加1),所有在printf的时候遇到'\0'就停止打印了,后边的字符串就显示不出来了。应该在第一个while下边写一个p--;让p指针指向'\0'

回答2:

修改下,你再试试,如果不行我再到编译器里调试。
char*connect(char*p1,char*p2)
{
char*p=p1;
while(*p++!='\0')
{
NULL;
}
p--;  //当你发现*p到结尾的时候,已经++了,要再退回去
while((*p++=*p2++)!='\0')
{
NULL;
}
*p='\0';
return p1;
}

回答3:

#include
#include
char *connect(char*p1,char*p2);
int main() {
char s1[20] = "Hello,";
char*s2 = "WangSir";
puts(connect(s1,s2));
system("pause");
return 0;
}

char*connect(char*p1,char*p2) {
char *p = p1;
while(*p++);
--p;
while(*p++ = *p2++);
return p1;
}

回答4:

你跳过了'\0',这个你没修改。
while(*p !='\0')
{
p++;
}