【c++求助】vs2010下编了程序出了问题,目的是返回字符串

2025-01-02 03:39:48
推荐回答(1个)
回答1:

给你改好了,缩进调好了给你看,改动部分在注释里说明了:

#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;
}