1. 程式人生 > >求任意兩個字串的最大相同子串

求任意兩個字串的最大相同子串

c語言
# include<stdio.h>
#include<string.h>
int main(){
char a[100],b[100];
printf("s1=");
scanf("%s",a);
printf("s2=");
scanf("%s",b);
int i,j,k,maxlen=1,m;
for(i=0;i<strlen(a);i++){//i是a陣列下標,j是b陣列下標
for(j=0;j<strlen(b);j++){
if(a[i]==b[j]){
for(k=1;a[i+k]==b[j+k];k++);//k是相同串長度
if(k>maxlen) {
maxlen=k;//記錄最大子串長度
m=i;//記錄開始下標
}
}
}
}
int n=m;
for(n=m;n<m+maxlen;n++)//注意maxlen保留的才是最大長度
printf("%c",a[n]);
printf("\n");
return 0;
}