#define MAXLEN 50/*2009/09/19晚 写于白鹿原*/ typedef struct /*顺序串的连接操作*/ { char ch[MAXLEN]; int len; }SString; void StrAsign(SString *s)//串的建立函数 { int i,j; char c; printf("/nPlease input the length of String:"); scanf("%d",&j); getchar(); printf("/nplease input the value of String:"); for(i=0;i<j;i++) { scanf("%c",&c); s->ch[i]=c; } s->len=j; } void output(SString *s)//串的输出 { int i; for (i=0;i<s->len;i++) printf("%c",s->ch[i]); printf("/n"); } int StrCat(SString *s,SString t)//将串t连接到s的后面// { int i,flag; if(s->len+t.len<=MAXLEN) { for(i=s->len;i<s->len+t.len;i++) s->ch[i]=t.ch[i-s->len]; s->len+=t.len; flag=1; } else if(s->len<MAXLEN) { for(i=s->len;i<MAXLEN;i++) s->ch[i]=t.ch[i-s->len]; s->len=MAXLEN; flag=0; } else flag=0; return flag; } void main() { int pos,flag,len; SString *s1; SString s2; s1=(SString *)malloc(sizeof(SString)); s1->len=0; printf("/nNOW Please input the String1!"); StrAsign(s1); printf("/nNOW Please input the String2!"); StrAsign(&s2); flag=StrCat(s1,s2); if(flag=1) printf("/nThe operate is OK!"); else printf("/nThe String may be LOST!"); printf("/nThe String is:"); output(s1); }