编辑代码

#define MAXSIZE 100
typedef struct
{
    char ch[MAXSIZE];
    int len
}SString;
SString StrConcat (SString s,SString t)
{
    SString s1;
    int i;
    if(s.len+t.len<=MAXSIZE)
{
    for(i=0;i<s.len;i++)
    s1.ch[i]=s.ch[i];
    for(i=0;i<t.len;i++)
    s1.ch[s.len+i]=t.ch[i];
    s1.ch[s.len+i]='0';
    s1.len=s.lent.len;
}
else
  s1.len=0;
  return(s1);
}
int StrCompare(SString s.SString t)
{
    int i;
    if(s.len!=t.len)
    return (0);
    else
    {
        for(i=0;i<s.len;i++)
        if(s.ch[i]!=t.ch[i])
        return(0);
    }
    return(1);
}
int SuString(SString *sub,SString s,int pos,int len)
{
    int i;
    if(pos<0||pos>s.len||len<1||len>s.len-pos)
    {
        sub->len=0;
        return(0);
    }
    else
    {
        for (i=0;i<len;i++)
        sub->ch[i]=s.ch[i+pos-1];
        sub->len=len;
        return(1);
    }
}
void StrInsert(SString *s,SString t,int pos)
{
    int j;
    if(s->len+t.len>=MAXSIZE||(pos>s->len+1)||(pos<1))
    printf("overflow\n");
    else
    {
        for(j=s->len;j>=pos;j--)
        s->ch[j+t.len-1]=s->ch[j-1];
        for(j=0;j<t.len;j++)
        s->ch[j+pos-1]=t.ch[j];
    s->len=s->len+t.len;
    s->ch[s->len]='\0';
    }
}
void SteDelete(SString *s,int pos,int len)
{
    int k;
    if(pos<1)||(pos>s->len))
    printf("error\n");
    elseif(s->len-pos+1<len)
    s->len=pos-1;
    else
    {
        for(k=pos+len-1;k<=s->len;k++)
        s->len=s->len-len;
    }
}