void f(char *s,const char *p)
{ /* 文字配列sからパターン文字列pを全て除去する関数 */
 int i,l = strlen(p);
 for(i = l;*s != '\0';i = l)
  if(*s==*p && !strncmp(s,p,l))
   while(i--)
    *s++ = '・';
 else
  s++;
}

除去した所は'・'で潰される関数です。
何かだめなところあるでしょうか?
あれば思いっきり突っ込んでやってください。
超絶な先生様方、おながいしますm(T▽T)m