谁能说明一下这断程序

来源:百度知道 编辑:UC知道 时间:2024/06/05 16:43:27
int r_random(char *s1,char *s2,int r)/*检测s2抗体能否匹配s1,任意r位匹配。*/
{
int i,j;
char *anti;
anti=malloc(r+1);
char *s3;
for (j=antileng;j>=r;j--)
{
s3=s2;
for (i=0;i+j<=antileng;i++)
{
strncpy(anti,s3,j);/*获得连续的r位子串*/
s3++;
anti[j]='\0';
checktimes=checktimes+(antileng-j+1);
//checktimes=checktimes+(antileng-j+1)*j;
if (strstr(s1,anti))/*查找*/
return j;/*返回是几个连续位匹配*/
}
}
return 0;

int r_random(char *s1,char *s2,int r)/*检测s2抗体能否匹配s1,任意r位匹配。*/
{
int i,j;
char *anti;
anti=malloc(r+1); //分配一定的内存空间
char *s3;
for (j=antileng;j>=r;j--) //循环j从antileng到r,步长1
{
s3=s2; //s2的值到s3
for (i=0;i+j<=antileng;i++) //循环i从0到i+j的值不超过antileng,步长1
{
strncpy(anti,s3,j);/*获得连续的r位子串*/ 得到s3的一部分字符写到anti内
s3++;
anti[j]='\0';
checktimes=checktimes+(antileng-j+1);
//checktimes=checktimes+(antileng-j+1)*j;
if (strstr(s1,anti))/*查找*/
return j;/*返回是几个连续位匹配*/
}
}
return 0;