程序员们看过来
int strlen(char *s)
{char *t=s;
while(*t++);
return t-s-1;
}
int commstr(char *str1,char *str2,int *sublen)
{ char *s1,*s2;
int count=0,len1,len2,k,j,i,p;
len1=strlen(str1);
len2=strlen(str2);
if(len1>len2)
{s1=str1;s2=str2;}
else {len2=len1;s1=str2;s2=str1;}
for (j=len2;j>0;j--)
{for (k=0;(1)k+j<=len2;k++)/***k+j/
{for(i=0;(2)s1[i+j-1]!='\0';i++)/***i+j-1/
{ for(p=0;p<j&&(3)s1[i+p]=s2[k+p];p++);/***s1[i+p]=s2[k+p]/
if((4 )p==j) /***p==j/
{for(p=0;p<j;p++)
printf("%c",s2[k+p]);
printf("\N");
count++;
}
}
}
if(count>0)break;
}
*sublen=(count>0)?j:0;
return count;
}
看看程序中*边的答案是否有问题,
j=len2, (1)处怎么会是k+j
(2)怎么会是i+j-1