void maxchild(char str[],char str1[])
{
char *q, *p;
int n=0, m=0;
for(int i=0;i<strlen(str);i++){
for(int j=0;j<strlen(str1);j++){
m=0;
if(str[i]==str1[j]&&str1[j]!='\0'){
for(int k=0;str[k+i]!='\0'&&str1[k+j]!='\0&&str[k+i]==str[k+j];k++'){
m++;
p=&str[i];//这里问题是 如在一个公共字符串中 为什么p 就是指向第一个字符的地址?P 不会随i++ 而变化吗?
}
if(m>n){
q=p;
n=m;
}
}
}
}
if(n>0)
for(int i=0;i<n;i++){
printf("%c",*(q+i));
}else
printf("没有公共字符串");
} |