#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char *StrCatenate(char *s1,char *s2);
int main()
{
char *str1,*str2;
str1=(char*)malloc(sizeof(char));
str2=(char*)malloc(sizeof(char));
printf("Please input str1:\n");
scanf("%15s",str1);
printf("Please input str2:\n");
scanf("%15s",str2);
printf("result=%s\n",StrCatenate(str1,str2));
printf("result=%s\n",StrCatenate(str1,str2));
return 0;
}
char *StrCatenate(char *s1,char *s2)//函数必须返回操作数,即必须有输出接口
{ char *ps;//这里定义一个char 指针,使得其指想s1的初始地址
ps=s1;
s1+=strlen(s1);
while(*s1++=*s2++);
return ps; //返回s1的初始地址
}
我想把str2的字符串复制两份到str1,那么我多运行一次StrCatenate(str1,str2),为什么程序就当掉了呢