找出多个字符串中的最大公共子字符串,如“nbitheimanb”和“itheia”的最大子串是:”ithei”。
#include <stdio.h>
#include <string.h>
int main()
{
void maxSameString(char *s1,char *s2);
char *s1="nbitheimanb";
char *s2="citheia";
maxSameString(s1, s2);
return 0;
}
void maxSameString(char *s1,char *s2)
{
//定义两个字符串的长度
long int s1len=strlen(s1);
long int s2len=strlen(s2);
int count=0; //定义最大公共字符串的长度
int index=0; // 定义坐标
for (int i=0; i<=s1len; i++)
{
for (int j=0; j<=s2len; j++)
{
if (s1[i]==s2[j]) //如果两个相等 全部向下移动
{
for (int k=1; s1[i+k]==s2[j+k] && s1[i+k]!='\n' && s2[j+k]!='\n'; k++)
{
if (k>count)
{
count =k;
index =i;
}
}
}
}
}
for (int i=0; i<count; i++) {
printf("%c",s1[index+i]);
}
} |
|