代码找不到错误
题目在http://noi.openjudge.cn/ch0107/30/
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char a[1000]={0},b[1000]={0},c[1000]={0};
cin>>a>>b;
strcpy(c,a);
strcat(a,c);
strcpy(c,b); //字符重复两次与字符环效果一样
strcat(b,c);
int ai,bi,l=0,m1=strlen(a),m2=strlen(b),len=0,max_len=0,q=max(m1,m2);
for(ai=0;ai<m1;ai++){ //先取a中的字符
for(bi=0;bi<m2;bi++){ //再在b字符串中找与a相同的
len=0; //防止上一个循环没结尾
for(l=0;l<q;l++){ //定义l用于比较
if(b[bi+l]==a[ai+l]&&a[ai+l]!=0&&b[bi+l]!=0){ //如果相等,len++; !=0是为了防止将NUL进行比较
len++;
}
else{
max_len=max(max_len,len); //不等,则len等于0,退出l循环,找下一个相等的b
len=0;
break;
}
}
max_len=max(max_len,len); //防止i循环结尾时a==b
}
}
cout<<max_len;
}