BF算法(簡單匹配算法)

字符串的簡單匹配算法-BF算法的實現

#include "sqstring.cpp"
int index(SqString s,SqString t)
{
	int i=0,j=0;
	while (i<s.length && j<t.length) 
	{
		if (s.data[i]==t.data[j])  	//繼續匹配下一個字符
		{	
			i++;				//主串和子串依次匹配下一個字符
			j++;  
		}
		else          			//主串、子串指針回溯重新開始下一次匹配
		{	
			i=i-j+1;			//主串從下一個位置開始匹配
			j=0; 				//子串從頭開始匹配
		}
	}
	if (j>=t.length)   
		return(i-t.length);  		//返回匹配的第一個字符的下標
	else  
		return(-1);        		//模式匹配不成功
}
void main()
{
	SqString s,t;
	StrAssign(s,"ababcabcacbab");
	StrAssign(t,"abcac");
	printf("s:");DispStr(s);
	printf("t:");DispStr(t);
	printf("位置:%d\n",index(s,t));
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章