函数 fun 从头至尾扫描字符串 s,删除与字符串 t 相同的所有子串。先从 s 的 第 1 个字符开始查找子串 t,若找到则将后面的字符向前移动,然后继续查找; 否则从 s 的第 2 个字符开始,依此类推,重复该过程至 s 结尾。
typedef struct { char *ch; int len; }SString;//串的首地址和长度
void fun(SString *s,SString t) //i 为 s 的下标,j 为 t 的下标
{ int i=0,j;
if(s->len<1||t.len<1||s-len<t.len) return;
while(1)
{ j=____①____ ;
while(ilen&&j<t.len)//在串 s 中查找与 t 相同的子串
{ if(s->ch[i]==t.ch[j]) { i++; j++;}
else{ i= ____②____ ; j=0;}
}
if(____③____ ) break; //串 s 中不存在子串 t
i= ____④____ ;
for(k=i+t.len;klen;k++) s->ch[k-t.len]=s->ch[k];
s->len= ____⑤____;
}
}
①0;②i-j+1;③j<t,len;④i-j;⑤s.len-t.len