串的基本操作
-
串的基本操作
一、实验目的、意义
(
1
)理解串的堆分配存储结构。
< br>(
2
)理解用它们表示时插入,生成串,联接串与求子串
的算法。
(
3
)根据具体问题的需要,能够设计出相关算法。
二、实验内容及要求
说明
1
:
学生在上机实验时,需要自己设计出所涉及到
的函数,同时设计多组输
入数据并编写主程序分别调用这些函数,调试程序并对相应的输
出作出分析;修
改输入数据,预期输出并验证输出的结果,加深对有关算法的理解。
p>
具体要求:
定
义串的堆分配存储,完成串的基本操作:插入,生成串,联接串,求子串
等。
三、实验所涉及的知识点
C
语言算法、循环算法、串的堆分配存储结构、插入,生成串,联接
串与求子串的算法。
四、实验结果及分析
(所输入的数据
及相应的运行结果,运行结果要有提示信息,运行结果采用截图
方式给出。
)
五、总结与体会
(调试程序的心得与
体会,若实验课上未完成调试,要认真找出错误并分析原因
等。
)
调试程序时,出现了许多错误。如:串的堆分配存储结构、
串的联接
等。另外还有一些语法上的错误。由于对所学知识点概念模糊,试验
课上未能完成此次上机作业。后来经过查阅教材,浏览网页等方式,
才完成
试验。这次试验出现错误最重要的原因就是对课本知识点理解
不深刻以及编写代码时的粗
心。以后要都去练习、实践,以完善自己
的不足。
六、程序清单
(
包含注释
)
#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;
}