📄 gc_8_9.c
字号:
# include <stdio.h>
# include <string.h>
int commStr(char *str1,char *str2,int *lenpt)
/*函数返回最长公共子串的个数,通过指针参数传回最长公共子串的长度*/
{
int len1,len2,ln,count,i,k,p;
char *st;
if((len1 = strlen(str1)) < (len2= strlen(str2))) {
st = str1; str1= str2; str2 = st;
ln = len1; len1= len2; len2 = ln;
}
count = 0;
for(ln = len2; ln>0; ln--) {
/*找长为ln的公共子串*/
for(k = 0; k+ln<=len2;k++) {
/*自str2[k]开始的长 为ln的子串和str1中的子串比较*/
for(p=0;p+ln<=len1;p++) {
/*str1中的子串自str1[p]开始,两子串比较通过对应字符逐一比较实现*/
for(i=0;i<ln;i++)
if(str2[k+i] != str1[p+i]) break;
if(i==ln) /*找到一个最长公共子串*/
count++;
}
}
if(count) break;
}
*lenpt = ln;
return count;
}
void main()
{
int c,len;
c = commStr("Abc1AbcsAbcd123","123bAbc",&len);
printf("有%d个长为%d的公共子串\n",c,len);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -