正在加载图片...
Status Concat(Hstring T, Hstring SI, Hstring S2)( 据ifT.ch)free.h;/如果T.ch非空,则释放其存储空间 I* if( (T ch=(char*)malloc(S1. length+S2. length+1)*sizeof(char)) 构分配空间 return OVErFlow;/若分配失败,则返回溢出信息* for(count=0; count<sl length; count++) Tch count=Slch| count];/将S中字符拷贝到T中* T. ength=SI length+S2. length; /修改长度 for(count-SI.length; count<Tlength; count++) Tch| count=S2 ch count- Sl length;/将S2中所有字符 拷贝到T中* TchIT.ength=“0; return OK;/返回*/} 求子串T在主串S中的位置 据 算法思想:从主丰S的第一个字符 构 起和模式串(子串)的第一个字符 比较,相等则继续,否则从主串的 第二个字符起重新和模式比较,直 至比较完毕为止。 图示 S=“ a babcabcac bab T=“ab5 数 据 结 构 之 串 9 Status Concat(Hstring T, Hstring S1, Hstring S2){ int count; if(T.ch) free(T.ch); /*如果T.ch非空,则释放其存储空间*/ if(!(T.ch=(char *)malloc(S1.length+S2.length+1)*sizeof(char)))) /*分配空间*/ return OVERFLOW; /*若分配失败,则返回溢出信息*/ for(count=0;count<S1.length;count++) T.ch[count]=S1.ch[count]; /*将S1中字符拷贝到T中*/ T.length=S1.length+S2.length; /*修改长度*/ for(count=S1.length;count<T.length;count++) T.ch[count]=S2.ch[count- S1.length]; /*将S2中所有字符 拷贝到T中*/ T.ch[T.length] = ‘\0’; return OK; /*返回*/ } 数 据 结 构 之 串 10 ¾ 求子串T在主串S中的位置 ¾算法思想:从主串S的第一个字符 起和模式串(子串)的第一个字符 比较,相等则继续,否则从主串的 第二个字符起重新和模式比较,直 至比较完毕为止。 ¾图示 S = “a b a b c a b c a c b a b” T = “a b c a c
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有