int FindSubStr(char* t, char* p)
/*
从字符串t查找子字符串p。
字符串以数值结尾,例如p="str",那么p[0]='s',p[1]='t',p[2]='r',p[3]=0。
采用朴素的匹配算法。
返回子字符串第一次出现的位置,例如t="string ring",p="ring",则返回2。
若没有找到,则返回-1。
*/
{
// 请在此添加代码,补全函数FindSubStr
/********** Begin *********/
int i=0, j=0;
while(p[i]!=0 && t[j]!=0)//首先循环条件肯定是这个
{
if (p[i]==t[j]) //一步步的对比嘛 如果部分一样就+1
{
i ++;
j ++;
}
else//如果部分不一样实行以下操作
{
j = j-i+1;//关键操作可以理解为母字符串+1-子字符串检索后的位置
i = 0;//母字符串和他不符合,从零开始 从J-i+1个位置开始查找
}
}//循环到此停止
if (p[i] == 0)
{
return j-i;//如果找到了 返回其位置
}
else
{
return -1;//未找到返回1
}
/********** End **********/
}
实现字符串匹配操作的部分函数【白话简易的理解】
最新推荐文章于 2022-05-25 09:51:50 发布