1 字符串匹配问题
char *strstr(const char*str,const,char *substr)//匹配substr在str中的位置
{
int i,j,len1,len2;
len1=strlen(str);
len2=strlen(substr);
i=j=0;
while(i<len1&&j<len2)
{
if(str[i]==substr[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(j==len2)
return &str[i-len2];
else
return str;
}
{
int i,j,len1,len2;
len1=strlen(str);
len2=strlen(substr);
i=j=0;
while(i<len1&&j<len2)
{
if(str[i]==substr[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(j==len2)
return &str[i-len2];
else
return str;
}
char *strstr(const char*str,const,char *substr)//KMP算法
{
int i,j,len1,len2;
len1=strlen(str);
len2=strlen(substr);
i=j=0;
while(i<len1&&j<len2)
{
if(j==-1||str[i]==substr[j])
{
i++;
j++;
}
else
j=next[j];
}
if(j==len2)
return &str[i-len2];
else
return str;
}
{
int i,j,len1,len2;
len1=strlen(str);
len2=strlen(substr);
i=j=0;
while(i<len1&&j<len2)
{
if(j==-1||str[i]==substr[j])
{
i++;
j++;
}
else
j=next[j];
}
if(j==len2)
return &str[i-len2];
else
return str;
}
posted on
浙公网安备 33010602011771号