3)StrEqual(s, t) 判断两个串是否相等:着两个串与相等返回真(1) 否则返回假(0) bool Str Equal( sqstring S, Sqstring t) bool same=true in if( Slength.!= t,length)same= false;/长度不相等时返回0 se for(i=0; i<s length; i++) if(sdatai!=t data iD) i same=false; break; return same, 16
16 (3) StrEqual(s,t) 判断两个串是否相等:若两个串s与t相等返回真(1); 否则返回假(0)。 bool StrEqual(SqString s,SqString t) { bool same=true; int i; if (s.length!=t.length) same=false; //长度不相等时返回0 else for (i=0;i<s.length;i++) if (s.data[i]!=t.data[i]) { same=false; break; } return same; }
(4)StrEngth(s) 求串长:返回串s中字符个数 int StrEngth(SqString s) return Slength
17 (4) StrLength(s) 求串长:返回串s中字符个数。 int StrLength(SqString s) { return s.length; }
(5)Concat(s, t) 串连接:返回由两个串和接在一起形成的新串。 Sqstring Concat(sqString S, SqString t i SqString str; int strlength=s length+tlength; for(i=0; i<s length; i++) strdata i=sdatai; for(i=0; i<t length; i ++) str. s length+i=tdata; return stre 18
18 (5) Concat(s,t) 串连接:返回由两个串s和t连接在一起形成的新串。 SqString Concat(SqString s,SqString t) { SqString str; int i; str.length=s.length+t.length; for(i=0;i<s.length;i++) str.data[i]=s.data[i]; for(i=0;i<t.length;i++) str.data[s.length+i]=t.data[i]; return str; }
19
19
(6)SubStr(s, i, j) 求子串:返回串中从第i(1sn)个字符开始的、由连。 续个字符组成的子串。参数不正确时返回一个空串。 SqString Substr(sqstring s, int i, int j) i SqString str; int k; strength=0 if(=0‖ i>slength‖j<0‖i+j-l>s, length) printi("参数不正确n"); return stre;/参数不正确时返回空串* 考虑其他写法? for(ki-1; k<i+j-1; k++) strdata k-i+1=sdata k strength=j return str. 20
20 (6) SubStr(s,i,j) 求子串:返回串s中从第i(1≤i≤n)个字符开始的、由连 续j个字符组成的子串。参数不正确时返回一个空串。 SqString SubStr(SqString s,int i,int j) { SqString str; int k; str.length=0; if (i<=0 || i>s.length || j<0 || i+j-1>s.length) { printf("参数不正确\n"); return str; /*参数不正确时返回空串*/ } for (k=i-1;k<i+j-1;k++) str.data[k-i+1]=s.data[k]; str.length=j; return str; } 考虑其他写法?