- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 串 2、串赋值 void StrAssign ( char s1[ ] ,char *s2) { int i; for( i=0;s2[i]!=‘\0’;i++) s1[i]=s2[i]; s1[i]=‘\0’; } for( i=0;s2[i]!=‘\0’;i++) s1[i+1]=s2[i]; s1[0]=i; 串拷贝: for( i=0;i=s2[0];i++) s1[i]=s2[i]; 算法思想如下: 首先将s1与t1进行比较,若不同,就将s2与t1进行比较,...,直到s的某一个字符si和t1相同,再将它们之后的字符进行比较,若也相同,则如此继续往下比较,当s的某一个字符si与t的字符tj不同时,则s返回到本趟开始字符的下一个字符,即si-j+2,t返回到t1,继续开始下一趟的比较,重复上述过程。若t中的字符全部比完,则说明本趟匹配成功,本趟的起始位置是i-j+1或i-t[0],否则,匹配失败。 1.串赋值 int StrAssign( HString *s, char *t ) { int i ,j; if( s-ch) free(s-ch); for (i=0;t[i]!=‘\0’; ++i); if(!i) { s-ch=NULL; s-length=0;} else { s-ch=(char *)malloc(i*sizeof(char)); for(j=0;ji;j++) s-ch[j]=t[j]; s-length=i; } return 1; } 2.串比较 int StrCompare( HString *s1, HString *s2) { int i ; for (i=0;is1-lengthis2-length; ++i) if(s1-ch[i]!=s2-ch[i]) return (s1-ch[i]-s2-ch[i]); return s1-length-s2-length ; } 3.清空串 int StrClear( HString *s) { if( s-ch) { free(s-ch); s-ch=NULL; } s-length=0; return 1; } 4.串连接 int StrConcat( HString *s1, HString *s2, HString *s) { int i ,j; if( s-ch) free(s-ch); s-ch=(char*)malloc((s1-length+s2-length)*sizeof(char)); for( i=0;is1-length; i++) s-ch[ i]=s1-ch[ i]; for( j=0;js2-length; i++) s-ch[ i+j ]=s2-ch[ j]; s-length= s1-length+ s2-length; return 1; } 5.求子串 int StrSub( HString *t, HString *s , int i , int len) { int j; if( i1||is-length||len0||lenS-length-i+1) return 0; if(!len) { t-ch=NULL; t-length=0;} else { t-ch=(char *)malloc(len*sizeof(char)); for( j=0;jlen; j++) t-ch[j]=S-ch[i-1+j]; t-length=len; } return 1; } 6.串插入 int StrInsert( HString *s, int i; HString *t) { int j; if( i1||is-length+1) return 0; if( t-length ) { s-ch=(char *)realloc(s-ch, (s-length
原创力文档


文档评论(0)