DycbGhost 2020-12-03 00:01 采纳率: 100%
浏览 36
已采纳

c++中,求这两个串最大公共子串(求解为何报错)

//cpp
#include<iostream>
using namespace std;
#include"acb.h"
int main()
{
	sqstr s1,t1,str;
	input(s1,"adssdaxczefrcbxcvxqwgcxx");
	input(t1,"sadxccxassdyii");
	cout<<"s1:";     output(s1);
	cout<<"t1:";     output(t1);
	str=maxstr(s1,t1);
	cout<<"str:";
	output(str);
	cout<<str.length<<endl;
	return 0;
}


//acb.h
#define MaxSize 100     //串中的最多字符个数
typedef struct
{
	char data[MaxSize];
	int length;
}sqstr;
 


void input(sqstr &s, char str[])  //串的赋值运算
{
	int i=0;
	while (str[i]!='\0')
	{
		s.data[i]=str[i];
		i++;
	}
	s.length=i;
}



sqstr maxstr(sqstr s,sqstr t)
{
	sqstr str;
	int midx=0,mlen=0,tlen,i=0,j,k;
	while (i<s.length)        //用i扫描串s
	{
		j=0;                  //用j扫描串t
		while (j<t.length)
		{
			if(s.data[i]==t.data[j])
			{
				tlen=1;
				for (k=1;i+k<s.length && j+k<t.length && s.data[i+k]==t.data[j+k];k++)
				{
					tlen++;
				}
				if (tlen>mlen)          //将较大长度付给midx和mlen
				{
					midx=i;          //记录当前相同字符串的下标
					mlen=tlen;       //记录当前相同字符串的长度
				}
			j=j+1;
			}
			else j++;
		}
		i++;                                // 继续扫描s中第i字符之后的字符
	}
	for (i=0;i<mlen;i++)                    //将最大公共子串复制到str中
	{
		str.data[i]=s.data[midx+i];
	}
	str.length=mlen;
	return str;                               //返回最大公共子串



void output(sqstr s)  //串的输出运算
{
	int i;
	for(i=0;i<s.length;i++)
		cout<<s.data[i];
	cout<<endl;
}





//--------------------Configuration: 1125 - Win32 Debug--------------------
Compiling...
1125.cpp
C:\Users\51207\Desktop\vC\11\1125.cpp(5) : error C2601: 'main' : local function definitions are illegal
C:\Users\51207\Desktop\vC\11\1125.cpp(17) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

1125.obj - 1 error(s), 0 warning(s)

  • 写回答

2条回答 默认 最新

  • qq_25376897 2020-12-03 09:07
    关注

    maxstr 最后少了个} 

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器