给你改好了,缩进调好了给你看,改动部分在注释里说明了:
#include "stdafx.h"
#include
#include
using namespace std;
char *srzfc()
{
char *a,*b,c;
int d=0;
ab:
if(d==1) puts("没有输入!");
scanf("%c",&c);
if(c==10) //防止不输入
{d=1;goto ab; }
a=new char[2];a[0]=c;
a[1]='\0';
scanf("%c",&c);
b=new char[3];
for(d=1;c!=10;d++)
{
a[d]='\0';//这一句是我加的,使用strcpy时,a的末尾要有一个'\0',否则程序不知道要复制多长的字符串。
strcpy(b,a);
delete []a;
b[d]=c;
a=b;
b=new char[d+3];
scanf("%c",&c);
}
a[d]='\0';
delete []b;
return a;
}
void main()
{
int a,b[1];
char *c;
c=srzfc();
puts(c);
delete []c;
}