顺序串中实现串的基本运算如下(1) StrAssign(str, cstr)将一个字符串常量赋给串str,即生成一个其值等于cstr的串s。void StrAssign(SqString &str, char cstrl D)int i;Yfor(i=0;cstr[ij!='"o';i++)str.chi]=cstri]str.len=i;11
11 顺序串中实现串的基本运算如下: (1) StrAssign(str, cstr) 将一个字符串常量赋给串str,即生成一个其值等于 cstr的串s。 void StrAssign(SqString &str, char cstr[ ]) { int i; for (i=0;cstr[i]!='\0';i++) str.ch[i]=cstr[i]; str.len=i; }
(2) StrCopy(s, t)将串t复制给串s。void StrCopy(SqString &s, SqString t) /*引用型*/ inti;for (i=0;i<t.len;i++)S.ch[i]=t.ch[i] ;s.len=t.len;14
12 (2) StrCopy(s, t) 将串t复制给串s。 void StrCopy(SqString &s, SqString t) /*引用型*/ { int i; for (i=0;i<t.len;i++) s.ch[i]=t.ch[i]; s.len=t.len; }
(3) StrEqual(S, t)判串相等:若两个串s与t相等返回真(1):否则返回假(0)。int StrEqual(SqString s, SqString t)intsame=l,i;if(s.len!=t.len)same=0;/*长度不相等时返回0*/elsefor (i=0; i<s.len; i++)if (s.ch[i]!=t.ch[i]) /*有一个对应字符不相同时返回0*/same=0;break;return same;13
13 (3) StrEqual(s, t) 判串相等:若两个串s与t相等返回真(1);否则返回假 (0)。 int StrEqual(SqString s, SqString t) { int same=1,i; if (s.len!=t.len) same=0; /*长度不相等时返回0*/ else for (i=0; i<s.len; i++) if (s.ch[i]!=t.ch[i]) /*有一个对应字符不相同时返回0*/ { same=0; break; } return same; }
(4) StrLength(s)求串长:返回串s中字符个数。int StrLength(SqString s)return s.len;14
14 (4) StrLength(s) 求串长:返回串s中字符个数。 int StrLength(SqString s) { return s.len; }
(5) Concat(s, t)返回由两个串s和连接在一起形成的新串。SqString Concat(SqString s, SqString t)SqStringstr;inti;str.len-s.len+t.len;for(i-0;i<s.len;i++)/*将s.ch[0]~s.ch[s.len-1]复制到str*/str.ch[i]=s.ch[i];for (i=0;i<t.len;i++)/*将t.ch[0] ~ t.ch[t.len-1]复制到str*/str.ch[s.len+i]=t.ch[i] ;return str;15
15 (5) Concat(s, t) 返回由两个串s和t连接在一起形成的新串。 SqString Concat(SqString s, SqString t) { SqString str; int i; str.len=s.len+t.len; for (i=0;i<s.len;i++) /*将s.ch[0]~s.ch[s.len-1]复制到str*/ str.ch[i]=s.ch[i]; for (i=0;i<t.len;i++) /*将t.ch[0]~t.ch[t.len-1]复制到str*/ str.ch[s.len+i]=t.ch[i]; return str; }