|
|

楼主 |
发表于 2005-3-25 20:55:00
|
显示全部楼层
Re:字符串匹配算法
以下代码似乎可以工作了……请大家继续拍砖……我的失误啊……大家B4我吧
size_t StringSub(const char* src,const char* op)
{
CVector<unsigned short> next; //support max offset = 65535
next[0]=-1;
unsigned short i=0,j=(unsigned short)-1;
const char* base=src;
while(op)
{
if(j==(unsigned short)-1)
{
++i;
++j;
next=j;
}
else
{
if(op==op[j])
{
++i;
++j;
next=j;
}
else
{
j=next[j];
}
}
}
next[0]=0;
j=0;
i=0;
while(src)
{
if(src==op[j]||j==0)
{
++j;
++i;
if(!(op[j]))
{
return i-j;
}
}
else
{
j=next[j];
}
}
return 0xFFFFFFFF;
} |
|