3、Assign(String&T,char *chars){ if (T.ch)free(T.ch); int i,len; for (len=0;chars[len];len++); //计算chars的长度存入len if (!len) { T.ch=NULL; T.length=0; } else { if (!(T.ch=(char*)malloc(len*sizeof(char)))) return OVERFLOW; for (i=
4、0;iS.ch[i]?1:-1; return T.length-S.
5、length;} int StrClear(String&T){ if (T.ch){free(T.ch);T.ch=NULL;} T.length=0; return OK;} int StrConcat(String&T,StringS1,StringS2){ if (T.ch)free(T.ch); if (!(T.ch=(char*)malloc(sizeof(char)*(S1.length+S2.length)))) return OVERFLOW; int i; for (i=0;i
6、ength;i++) //将串S1先放在T.ch的前面部分 T.ch[i]=S1.ch[i]; for (i=0;i
7、
8、pos>=S.length
9、
10、len<0
11、
12、pos+len-1>S.len
13、gth-1) return ERROR; //输入数据不合法 if (T.ch)free(T.ch); if (!len) { T.ch=NULL; T.length=0; } else { if (!(T.ch=(char*)malloc(len*sizeof(char)))) return OVERFLOW; int i; for (i=0;i