改正此算法,或另外给点算法思想!
这是一判断一源字符串是否包含另一字符串,需要判断包含的字符是整体联系的,就第二字符串所在源字符串是连续性,另如果判断出源字符串含有此字符串,就返回该字符串在源程序字符串的启始下标数字给主程序。
做很多此程序,但每次都有小BUG,特求助下好算法。
int lookbaohan(const char s1[],const char s2[])
{
int i=0,j=0,m;
/*判断第一起始位置*/
while(s1[j]!='\0'){
if(s1[j]!=s2[i])
++j;
else
break;}
++j&&++i;
/*判断两字符第二位置是否相等*/
while(s1[j]!='\0'&&s2[i]!='\0'){
if(s1[j]!=s2[i]){ /*如不相等,继续查找第一起始位置直到到达空字符串止*/
i=0;
if(s1[j]!=s2[i]&&s1[j]!='\0')
++j;}
else
++i&&++j;
}
if(s1[j]!=s2[i])
return -1;
else
m=j-i;
return m;
}
[此贴子已经被作者于2007-6-19 20:50:46编辑过]