设计一个函数 char *insert(char *s1, char *s2), 字符串s1为原字符串,s2为新字符串,新的字符串是在原来字符串中每两个字符之间插入一个空格, 如原来的字符串为“abcd”,新产生的字符串应为“a b c d”(注意,最后一个字符后面不要插入空格)。 函数返回新字符串的首地址。原字符串在主函数中用键盘输入方式得到,调用函数后,再输出新字符串的内容。
问一下问什么最后会出现一堆??
字符串结尾要用\0
作为结束标识
将代码初始化部分改为char b[50]={0};
即可有帮助望采纳~
p3 = insert(p1,p2)就好了
供参考:
#include<stdio.h>
char *insert(char *s1,char *s2)
{
char *p1=s1,*p2=s2;
while(*p1)
{
*p2++ = *p1++;
if(*p1 != '\0') *p2++ = ' ';
}
*p2 = '\0';
return s2;
}
int main()
{
char a[20],b[50],*p;
scanf("%s",a);
p = insert(a,b);
printf("%s\n",p);
return 0;
}