数据结构实验(C语言):堆串
文章参考过网上的内容,如有侵权,请联系
#include<stdio.h>#include<stdlib.h>typedefstruct{char*ch;//若是非空串,则按串长分配储存区,否则ch为NULLintlength;//串长}HString;intStrAssign(HString&T,char*chars){//生成一个其值等于串常量chars的串Tif(T.ch)free(T.ch);//释放T原有空间inti=0;char*c=chars;while(*c)//求chars的长度i{++i;++c;}if(!i){T.ch=NULL;T.length=0;}else{if(!(T.ch=(char*)malloc(i*sizeof(char))))exit(-1);for(intk=0;k<i;k++)T.ch[k]=chars[k];//复制T.length=i;}return1;}voiddisp(HString S){inti=0;while(S.length--){printf("%c",S.ch[i]);i++;}printf("\n");}voidDelStr(HString&S,intstart,intlen){if(S.length==0||start>S.length||start+len>S.length+1)printf("ERROR\n");for(inti=start;i<=S.length-len+1;i++){S.ch[i-1]=S.ch[i+len-1];}S.length=S.length-len;disp(S);}intmain(){HString S;char*T="abcdefghijk";printf("定义串S\n");StrAssign(S,T);disp(S);printf("截取从3号位开始长度为4的字串\n");DelStr(S,3,4);}