- //找出多个字符串中的最大公共子字符串,如“nbitheimanb”和“itheia”的最大子串是:”ithei”。(C语言)
- #include <stdio.h>
- #include <string.h>
- int getMaxSonStr(char *s1, char *s2, int len1, int len2)
- {
-
- int index = 0;
-
- int m = 0 , n = 0;
-
- for (int i = 0; i < len1; i++)
-
- {
-
- for (int j = 0; j < len2; j++)
-
- {
- if (s1[i] ==s2[j] & s1[i] != '\0')
-
- {
- m = 1;
-
- for (int k = 0; s1[i+k] == s2[j+k] && s1[i+k]!='\0'; k++)
-
- {
- m++;
- }
- if(m > n)
- {
- index = i;
- n = m;
-
- }
-
- }
-
- }
-
- }
-
- if(m !=0)
- {
- printf("最长的公共子串:");
-
- for(int i = 0; i < m; i++)
- {
- printf("%c",s1[index]);
- }
- }
- else
-
- printf("没有公共子串!\n");
-
- return 0;
- }
- int main()
- {
- char str1[110];
-
- char str2[110];
- printf("请输入第一个字符串:\n");
-
- gets(str1);
-
- printf("请输入第二个字符串:\n");
-
- gets(str2);
-
- int len_str1 = strlen("str1");
-
- int len_str2 = strlen("str2");
-
- getMaxSonStr(str1,str2,len_str1,len_str2);
-
- printf("\n");
-
- return 0;
-
- }
复制代码
|
|