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 MATLAB代码求涡量
  • ¥100 采用栈和深度优先算法对我的代码进行修改显示路径
  • ¥15 pointnet2包安装
  • ¥20 射频功率问题,解答者有酬谢!
  • ¥80 构建降雨和积水的预测模型
  • ¥15 #Qt Transform setTransform()在鼠标拖动移动视角是一致在原地不动,无法变换视角(细微观察似乎视图有在原地抖动),无法变换视角(细微观察似乎视图有在原地抖动)
  • ¥50 如何利用无人机拍摄的数码照片测量鸟卵的长短径
  • ¥100 github贡献者给与奖励
  • ¥15 使用DS18B20+ESP8266获取温度数据返回-127.00
  • ¥15 odbc代码新增sqlserver数据源