数据结构串的堆分配储存C语言演示.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
/* 串的堆分配储存代码演示 */ # include stdio.h # include stdlib.h # include malloc.h # include string.h //设置结构体变量 typedef struct string { char * ch; int length; }STRING,* PSTRING; //函数前置声明 //初始化结构体 void InitString( PSTRING ); //串的赋值操作 void StrAssign( PSTRING, char * ); //串的长度 int StrLength( PSTRING ); //比较两个串的大小 int StrCompare( PSTRING, PSTRING ); //清空一个串 bool ClearString( PSTRING ); //拼接两个串,组成一个新串 bool Concat( PSTRING, PSTRING, PSTRING ); //在某个位置上截取某个长度 bool SubString( PSTRING, PSTRING, int, int ); /* 初始化 */ void InitString(PSTRING str) { str - ch = NULL; str - length = 0; } /* 串的赋值操作 @param PSTRING str 将目标串赋值到该串 @param char * s 被复制的串 return void */ void StrAssign(PSTRING str,char * s) { int i, j; //判断指针是否为空,如果不为空,将内存再用释放 if( str - ch ) { free( str - ch ); str - ch = NULL; } //判断传入字符串的长度 for( i = 0; s[i] != \0; i++ ); //在内存中动态分配出空间 str - ch = ( char * )malloc( i * sizeof( char ) ); if( NULL == str - ch ) { printf(动态内存分配失败\n); return; } //逐个将值复制过来 for( j = 0; j i; ++j ) { str - ch[j] = s[j]; } //给长度赋值 str - length = i; return; //结束 } //返回串的长度 int StrLength( PSTRING str ) { return str - length; } /* 比较两个串的大小 @param PSTRING str1 其中一个串 @param PSTRING str2 其中一个串 return int 思路: 1,逐个比较元素的ascii码,返回正数或者负数 2,如果比较完毕,在比较两个串的长度,返回0 或者 非0 */ int StrCompare( PSTRING str1, PSTRING str2 ) { int i; for( i = 0; i str1-length i str2-length; ++i ) { if( str1-ch[i] != str2-ch[i] ) { return str1-ch[i] - str2-ch[i]; } } return str1-length - str2-length; } //清空一个串 bool ClearString( PSTRING str ) { free( str - ch ); str - ch = NULL; str - length = 0; return true; } //拼接两个串,组成一个新串 bool Concat( PSTRING str3, PSTRING str1, PSTRING str2 ) {

文档评论(0)

rKSIaVVUZK + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档