实验报告
课程 数据结构 实验名称 实验三 串
学号 姓名 S->length=S->length-len;
/*产生新的串长度值*/
return 1;
}
}
/*取子串操作 */
int SubString(String S, int pos, int len, String *T)
/*取串 S 的从 pos 位置开始长度为 len 的子串值赋给子串 T*/
{
int i;
if(pos<0||len<0||pos+len>)
{
printf("The parameters pos and len are not correct!\n");
return 0;
}
else
{
for(i=0; i<=len; i++)
T->str[i]=[pos+i]; /*给子串 T 赋值*/
T->length=len; /*给子串 T 的长度域赋值*/
return 1;
}
}
/*查找子串 BF(Brute-Force)操作*/
int BFIndex(String S, int start, String T)
/*查找主串 S 从 start 开始的子串 T,找到返回 T 在 S 中的开始字符下标,否则返回-1*/
{
int i= start, j=0, v;
while(i< && j<)
{
if([i]==[j])
{
i++;
j++;}
else
{
i=i-j+1;
j=0;
}
}
if(j==)
v=i-;
else
v=-1;
return v;
}
/*查找子串 KMP(--)操作 */
int KMPIndex(String S, int start, String T, int next[])
/*查找主串 S 从 start 开始的子串 T,找到返回 T 在 S 中的首字符下标,*/
/*否则返回-1*/
/*数组 Next 中存放有模式串 T 的 next[j]值*/
{
int i= start, j=0, v;
while(i< && j<)
{
if(
数据结构串实验报告 来自淘豆网m.daumloan.com转载请标明出处.