首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么编译能通过运行出错呢?错在哪啊求

2012-02-14 
为什么编译能通过运行出错呢?错在哪啊,求高手指点!#include stdio.h#include alloc.h#include string

为什么编译能通过运行出错呢?错在哪啊,求高手指点!
#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可以揭贴了。。。

热点排行