c语言最后输出一堆?
论文问答
1
设计一个函数 char *insert(char *s1, char *s2), 字符串s1为原字符串,s2为新字符串,新的字符串是在原来字符串中每两个字符之间插入一个空格, 如原来的字符串为“abcd”,新产生的字符串应为“a b c d”(注意,最后一个字符后面不要插入空格)。 函数返回新字符串的首地址。原字符串在主函数中用键盘输入方式得到,调用函数后,再输出新字符串的内容。 问一下问什么最后会出现一堆??
-
仅供参考:
#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; }
-
字符串结尾要用
\0
作为结束标识 将代码初始化部分改为char b[50]={0};
即可
发表回复