[b]题目:[/b]
编写算法,从串s中删除所有和串t相同的子串。

要求实现以下函数:
Status DelSub(SString &s, SString t);
/* 从串s中删除所有和串t匹配的子串。     */
/* 若有与t匹配的子串被删除,则返回TRUE;*/
/* 否则返回FALSE                        */

定长顺序串SString的类型定义:
typedef unsigned char SString[MAXSTRLEN+1];  
/* s[0] is the string's length */



[b]我的代码:[/b]
int StrCompare(SString s, SString t)
               {  int i;
                for(i=1;i<=s[0];i++)
                if(s[i]!=t[i]) return s[i]-t[i];
                return s[0]-t[0];}
Status DelSub(SString &s, SString t)
/* 从串s中删除所有和串t匹配的子串。     */
/* 若有与t匹配的子串被删除,则返回TRUE;*/
/* 否则返回FALSE                        */
{               int i=1,n=0,j,k;
                SString sub;
                while(i<=s[0]-t[0]+1)
               {for(j=1;j<=t[0];j++)
                sub[j]=s[i+j-1];
                sub[0]=t[0];
                if(StrCompare(sub,t)==0)
                 {for(k=0;k<=s[0]-t[0]-i;k++)
                 s[i+k]=s[i+t[0]+k];
                 s[0]=s[0]-t[0];
                 i=i+t[0]; n++;
                 }
                else i++; 
               }
               if(n==0)
               return FALSE;
               else
               return TRUE;
}


编译时没有问题的   关键是运行   请各位指点!!