思路:
1输入两个字符串
2比较谁长
3编写函数
:1找到最长的字符串---遍历时以最长的为基准
:2两个for循环遍历,判断短的字符串的一个字符是否==长的字符串的字符
:3相等后接着往后判断,让数组的下表++;将得到的字符串存入charb【100】中,再接着遍历
再比较哪个最长最终存入b中
代码
#include <stdio.h>
#include <string.h>
void substr(char *s1, char *s2, int len)
{
int i, j, m = 0;
int p, q;
int length = strlen(s2);
char a[100] = {0};
char b[100] = {0};
for(i = 0; i < len; i++)
{
for(j = 0; j < length; j++)
{
strcpy(a, "0");
p = i;
q = j;
while(s1[p] == s2[q] && s1[p] != 0)
{
a[m] = s2[q];
p++;
q++;
m++;
}
if(strlen(a) > strlen(b))
{
strcpy(b, a);
}
m = 0;
}
}
printf("最大公子串:%s\n", b);
}
int main()
{
char str1[100] = {0};
char str2[100] = {0};
int len;
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
len = strlen(str1) <= strlen(str2) ? strlen(str1) : strlen(str2);
if(len == strlen(str1))
{
substr(str1, str2, len);
}
else if(len == strlen(str2))
{
substr(str2, str1, len);
}
return 0;
}