为什么编译能通过运行出错呢?错在哪啊,求高手指点!
#include <stdio.h>
#include <alloc.h>
#include <string.h>
char *string_c(char *str1,char *str2)
{
char *str=NULL;
for(;*str1!= '\0 ';str1++,str++)
*str=*str1;
for(;*str2!= '\0 ';str2++,str++)
*str=*str2;
*str= '\0 ';
return str-strlen(str1)-strlen(str2);
}
void main()
{
char *str1;
char *str2;
char *str=NULL;
printf( "please input two string\n ");
gets(str1);
gets(str2);
str=string_c(str1,str2);
puts(str);
}题目是让定义一个函数用与连接两个字符串
[解决办法]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *string_c(char *str1,char *str2)
{
char *str=(char *)malloc(50);
char *temp = str;
for(;*str1!= '\0 ';str1++,str++)
*str=*str1;
for(;*str2!= '\0 ';str2++,str++)
*str=*str2;
*str= '\0 ';
//return str-strlen(str1)-strlen(str2);
return temp;
}
int main()
{
char *str1 = (char *)malloc(20);
char *str2 = (char *)malloc(20);
char *str=NULL;
printf( "please input two string\n ");
gets(str1);
gets(str2);
str=string_c(str1,str2);
puts(str);
free(str1);
free(str2);
free(str);
system( "pause ");
return 0;
}
okokok...LZ可以揭贴了。。。