- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                C程序代码-C结构串
                    #includestdio.h
#includestdlib.h
#includestring.h
#includestr.h
void IniString(String *s,const char *c)//准构造函数
{
	int len=strlen(c);						//计算字符串长度
	s-str=(char*)malloc(len+1);			//给本串s分配字符串空间
	if(s-str==NULL)
		StrError(overflow!);
	strcpy(s-str,c);						//给本串的字符串空间赋值
	s-size=len;							//记录本串的串长
}
void FreeString(String *s)//准析构函数
{
	free(s-str);							//释放本串的字符串空间					
}
String* Copy(String *s,const String *s1)//将结构串s1赋值给本串s
{
	if(s-size!=s1-size)
	{
		free(s-str);						//释放本串的字符串空间
		s-str=(char*)malloc(s1-size+1);	//重新分配本串的字符串空间
		if(s-str==NULL)				
			StrError(overflow!);
		s-size=s1-size;					//修改本串的字符长度
	}
	strcpy(s-str,s1-str);					//给本串的字符串赋值
	return(s);								//返回本串
}
String * Assign(String *s,const char *c)//把字符串c赋值给本串s
{
	int len=strlen(c);					//计算字符串长度
	if(s-size!=len)						
	{
		free(s-str);					//释放本串的字符串空间		
		s-str=(char*)malloc(len+1);	//重新分配本串的字符串空间
		if(s-str==NULL)
			StrError(overflow!);
		s-size=len;					//修改本串的字符长度
	}
	strcpy(s-str,c);					//给本串的字符串赋值
	return(s);	
}
String* Concat(const String *s,const String *s1,String *s2)//把结构串s和s1连接,存储到目标串s2
{
	int len=s-size+s1-size;			//计算连接后的串长度
	free(s2-str);						//释放目标串的字符串空间
	s2-str=(char*)malloc(len+1);		//重新分配目标串的字符串空间
	if(s2-str==NULL)
		StrError(overflow!);
	strcpy(s2-str,s-str);				//将结构串s的字符串拷贝目标串s2的字符串空间
	strcat(s2-str,s1-str);			//将目标串s2的字符串和结构串s1的字符串连接
	s2-size=len;						//修改目标串s2的字符串长度
    return(s2);
}
String *SubInsert(String *s,int id,const String *s1)//在本串s的下标id处插入子串s1。
{
	char *p, *p1,*buf;
	int len=s-size;					//记录本串长度
	int len1=s1-size;					//记录子串长度
	int left=len-id;					//计算移动的字符个数
	int i;
	if(id0||idlen)					//检验插入位置的合法性
	   StrError(id illegal!); 
//步骤1)	
	buf =s-str;						//保留本串的字符串
	s-str=(char *)malloc(len+len1+1);	//重新分配本串的字符串空间
	if(s-str==NULL)
		StrError(overflow!);
	strcpy(s-str, buf);				//取回保留的字符串
	free(buf);							//释放保留字符串的空间
//步骤2)	
	p=s-str+len;						//指向本串结束符
	p1=p+len1;							//指向本串结束符移动的终点
	for(i=1;i=left+1;i++)				//移动字符是后段字符和串结束符
		*p1--=*p--;
//步骤3)
	p=s-s
                您可能关注的文档
最近下载
- 第十二课 冲动来袭时 课件 鄂教版八年级 心理健康教育.ppt VIP
- 2025年中国移动面试题目及答案.doc VIP
- 六年级数学下册典型例题系列之第二单元百分数(二)的应用题拓展篇(解析版).doc VIP
- 西工大计算机操作系统实验-创建GeekOS内核线程资.doc VIP
- 拉伸强度原始记录模板.xls VIP
- 近代科学进入中国的回顾与前瞻(杨振宁)高中语文必修2.ppt VIP
- 社区卫生院卫生服务中心制度管理办法方案汇编.docx VIP
- DB15T 3962.4-2025绿色矿山建设规范 第4部分:煤炭行业.pdf VIP
- TCS-900 SISPatch使用手册相关资料文档.pdf VIP
- 《交通安全教育》课件.ppt VIP
 原创力文档
原创力文档 
                         
                                    

文档评论(0)