串的基本操作

余年寄山水
713次浏览
2021年02月11日 03:44
最佳经验
本文由作者推荐

-

2021年2月11日发(作者:采荷一小)



串的基本操作






一、实验目的、意义




1


)理解串的堆分配存储结构。


< br>(


2


)理解用它们表示时插入,生成串,联接串与求子串 的算法。




3


)根据具体问题的需要,能够设计出相关算法。



二、实验内容及要求



说明

< p>
1



学生在上机实验时,需要自己设计出所涉及到 的函数,同时设计多组输


入数据并编写主程序分别调用这些函数,调试程序并对相应的输 出作出分析;修


改输入数据,预期输出并验证输出的结果,加深对有关算法的理解。



具体要求:



定 义串的堆分配存储,完成串的基本操作:插入,生成串,联接串,求子串


等。

< p>


三、实验所涉及的知识点


C


语言算法、循环算法、串的堆分配存储结构、插入,生成串,联接


串与求子串的算法。



四、实验结果及分析



(所输入的数据 及相应的运行结果,运行结果要有提示信息,运行结果采用截图


方式给出。






五、总结与体会



(调试程序的心得与 体会,若实验课上未完成调试,要认真找出错误并分析原因


等。




调试程序时,出现了许多错误。如:串的堆分配存储结构、 串的联接


等。另外还有一些语法上的错误。由于对所学知识点概念模糊,试验

< p>
课上未能完成此次上机作业。后来经过查阅教材,浏览网页等方式,


才完成 试验。这次试验出现错误最重要的原因就是对课本知识点理解


不深刻以及编写代码时的粗 心。以后要都去练习、实践,以完善自己


的不足。


< p>
六、程序清单


(


包含注释


)



#include <>



#include <>



#include <>



typedef char Status;



int strlen(char *p)



{



int i=0;



while(*p++)i++;



return i;



}



typedef struct



{




char *ch;


ength=0;




(*T).ch=NULL;



}



h)





free((*T).ch); h = NULL;





(*T).length = 0;




}




else




{





h = (char*)malloc(i*sizeof(char)); h) h[j] = chars[j];





(*T).length = i;




}




return 1;



}



h)





free((*T).ch); h=(char*)malloc*sizeof(char)); h) h[i]=[i];




(*T).length=;




return 1;



}



h)




{





free((*S).ch);





(*S).ch=NULL;




}




(*S).length=0;




return 1;



}



h)





free((*T).ch); ength=+;




(*T).ch=(char *)malloc((*T).length*sizeof(char));


h)





exit(0);




for(i=0;i<;i++)


h[i]=[i];




for(i=0;i<;i++)


h[+i]=[i];




return 1;



}



h)





free((*Sub).ch); h=NULL;





(*Sub).length=0;




}




else




{ h=(char*)malloc(len*sizeof(char));





if(!(*Sub).ch)






exit(0);





for(i=0;i<=len-1;i++)






(*Sub).ch[i]=[pos-1+i];





(*Sub).length=len;




}




return 1;



}





ength+1) h = (char*)realloc((*S).ch,






((*S).length+*sizeof(char));





if(!(*S).ch)






exit(0);





for(i=(*S).length-1;i>=pos-1;--i) h[i+]=(*S).ch[i];





for(i=0;i<;i++)






(*S).ch[pos-1+i]=[i]; ength+=;




}




return 1;



}



-


-


-


-


-


-


-


-