- #include<stdio.h>//调用printf函数需要声明的头文件
- #include<string.h>//调用strlen函数需要声明的头文件
- //定义函数,主要是用来辨别各个字符串的长度,返回最短的字符串长度
- int len(char a[], char b[], char c[])
- {
- int size,size1, size2,size3;
- size1 = strlen(a);
- size2 = strlen(b);
- size3 = strlen(c);
- size = size1;
- if (size2 < size)
- size = size2;
- if (size3 < size)
- size = size3;
- return (size);
- }
- //定义主函数
- int main()
- {
- int k,size,i=0,max=0,j=0,m;//定义整型变量看,k,i,max,j,m,并将0赋给i,max,j。
- //定义字符串a[],b[],c[]。
- char a[] = "afasdfdaaaaafghssggggg";
- char b[] = "asasdfsaaaaadagggg";
- char c[] = "dsasdfdaaaaafadfggg";
-
- size = len(a, b, c);//引用函数len
-
- for (k = 0; k < size; k++)//遍历小于siae字节数的所有字符
- {
- if (a[k] == b[k] && a[k] == c[k])//如果a[k] == b[k] && a[k] == c[k]则执行下面语句
- {
- i++;
- continue;//跳出本次循环,直接判断上级循环条件
- }
- if (i>max)
- {
- //记录最长公共字符的起始角标和总结角标
- max = i;
- j = k - i;
- m = k;
- i = 0;
- }
- }
- printf("最大子字符串是\n");
- //历遍j到(m-1)的所有字符
- for (i = j; i<m; i++)
- //打印每个a[i]
- printf("%c", a[i]);
- return 0;//结束函数
- }
复制代码
参考一下,希望有帮助! |