查找两个字符串中的最大公共子串,C语言举例代码实现
时间: 2023-05-18 21:05:51 浏览: 111
求两个字符串的最长公共字串。
4星 · 用户满意度95%
以下是一个简单的C语言代码实现,用于查找两个字符串中的最大公共子串:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[100];
int len1, len2, i, j, k, max = 0, pos = 0;
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
len1 = strlen(str1);
len2 = strlen(str2);
for (i = 0; i < len1; i++)
{
for (j = 0; j < len2; j++)
{
k = 0;
while (str1[i + k] == str2[j + k] && str1[i + k] != '\0' && str2[j + k] != '\0')
{
k++;
}
if (k > max)
{
max = k;
pos = i;
}
}
}
if (max == 0)
{
printf("两个字符串没有公共子串!\n");
}
else
{
printf("最大公共子串为:");
for (i = pos; i < pos + max; i++)
{
printf("%c", str1[i]);
}
printf("\n");
}
return 0;
}
```
这个程序首先要求用户输入两个字符串,然后使用两个嵌套的循环来比较它们的每一个子串,找到最大的公共子串并输出。
阅读全文