【正确答案】本题利用index()函数和删除子串的函数循环来实现。其程序如下:
void delall(Str *s1,Str *s2)
{
int n;
n=index(s1,s2);
while(n>=0)
{
del(s1,n,length(s2));
n=index(s1,s2);
}
disp(s1);
}
其中del函数实现如下:
int del(Str *s,int pos,int n)
//从串s中删除从位置pos开始的n个字符构成的子串
{
int i;
if(pos+n>s->length)
return 0;
for(i=pos+n-1;i<s->length;++i)
s->ch[i-n]=s->ch[i];
s->length=s->length-n;
s->ch[s->length]='/0';
return 1;
}
【答案解析】