- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 )
{
您可能关注的文档
最近下载
- 平度2018年蓼兰镇西何家店村滑溪头连片打造美丽乡村示.doc VIP
- 《法律基础知识》试题库(含答案).pdf VIP
- 电商达人LV1-LV2等级提升试卷.docx VIP
- 捷顺智能道闸安装调试说明书a 1.pdf VIP
- 37、餐厅菜品研发流程.pdf VIP
- 平度市2018蓼兰镇西何家店村、滑溪头连片打造美丽乡村示.doc VIP
- 医院设备科干事面试题及参考答案结构化面试题.docx VIP
- 2025庆元旦迎新年晚会PPT模板.pptx VIP
- 2023-2024学年语文三年级上学期《期末测试卷》附答案解析 .pdf VIP
- 房地产市场年报-2020年天津市房地产市场年报.pdf VIP
文档评论(0)