C语言中出现问题:local function definitions are illegal

为什么出现errorC2601:'Replace':localfunctiondefinitionsareillegalerrorC2601:'main':localfu... 为什么出现
error C2601: 'Replace' : local function definitions are illegal
error C2601: 'main' : local function definitions are illegal
fatal error C1004: unexpected end of file found
Error executing cl.exe.

#include <stdlib.h>
#define MaxSize 20
typedef struct//分配一个Sqstring存储单词和单词长度
{ char data[MaxSize];
int len;
}SqString;

bool StrAssign(SqString &S,char cstr[])//将字符串常量赋给串s,即生成一个值等于cstr的串s
{
int i=0;
char *sp=cstr;//指针sp指向字符串的首地址
while((*sp)!='\0' && i<MaxSize)//sp不指向空
{
S.data[i]=*sp;//*sp赋给s的第i个字符
i++;sp++;
}
if((*sp)=='\0')//sp指向最后的最后
{
S.len=i;//i为返回长度
return true;
}
else
return false;
}

int Index(SqString S,SqString T)//求T在S中的位置
{
int i=0,j=0;
while(i<S.len && j<T.len )
{
if(S.data[i]==T.data[j])//字符相等则依次往后移
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}//回溯开始新一趟 : i变为此趟比较之前原i的后一位,j变为0
if(j>=T.len)
return i-T.len;//返回T在S中的位置
else
return -1;
}

bool Replace(SqString &S,SqString &T,SqString &R)//将原串S的所有子串T都替换为插入串R
{
int len1=T.len;
while(Index(S,T)!=-1)
{
int len2=R.len+S.len-T.len;//新串的长度
int i=Index(S,T);//调用子串定位函数
char *p=new char[S.len-i-len1+1];//临时数组
char *q=new char[len2];//存储新串的数组
for(int j=i+len1;j<S.len;j++)
p[j]=S.data[j];//将不用替换的后部分存入数组p
for(int k=0;k<i;k++)
q[k]=S.data[k];
for(int m=i;m<i+R.len;m++)
q[m]=R.data[m-i];//替换子串
int b=i+len1;
for(int n=i+R.len;n<len2;n++)//将不用替换的后部分存入数组q
{
q[n]=p[b];
b++;//数组q存储着新串
}
S.len=len2;
for(int l1=0;l1<len2;l1++)
{ for(int l=0;l<len2;l++)
S.data[l]=q[l1];//将新串赋值给S做循环替换
}
}
return S;
}

void main()
{
SqString S,T,R,M;
char s[]="aaaadeaaaadecccde";
char t[]="de";
char r[]="mn";
bool p,q,j,k;
p=StrAssign(S,s);
q=StrAssign(T,t);
j=StrAssign(R,r);
k=Replace(S,T,R);
}
展开
 我来答
赤炼1fQ
2014-11-14 · TA获得超过255个赞
知道答主
回答量:118
采纳率:0%
帮助的人:110万
展开全部
看看是不是程序大括号和小括号不成对的问题,你这括号太多,看得我眼花缭乱,你和其他部分连起来看看,括号有没有问题。
请采纳。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式