问一道C语言的题目
下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh调用strcpy2后,s所指字符串为:efghefgh。请填空:
#include <stdio.h>
#include <string.h>
void strcpy2(char *s,char *t)
{char *p=t;
while(*s++=*t++);
s=___;
while(*s++=*p++);
}
main()
{char str1[100]="abcd",str2[]="efgh";
strcpy2(str1,str2); printf("%s\n");
}
请问空格上应填什么?为什么要这样填?请说明。
参考答案:s-1,因为要把后面的\0去掉