1 / 22
文档名称:

第四章 串.ppt

格式:ppt   大小:91KB   页数:22页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第四章 串.ppt

上传人:wzt520728 2019/8/6 文件大小:91 KB

下载得到文件列表

第四章 串.ppt

相关文档

文档介绍

文档介绍:(或字符串):是由零个或多个字符组成的有限序列。一般记作s=〃〃(n≥0)其中:s为串名,用双引号括起来的字符序列是串的值;ci(1≤i≤n)可以是字母、数字或其它字符;双引号中字符的数目n称为串的长度。零个字符的串称为空串,它的长度为零;通常以符号φ来表示空串。:(1)空串不等于空格串,空格串是含有一个或多个空格的串,如:s=〃〃是长度为1的空格串。(2)若串中含有空格,在计算串长时,空格应计入串的长度中,如:s=“Howareyou”的长度为11。(3)在C语言中,用单引号引起来的单个字符与单个字符的串是不同的,如s1=‘a’与s2=“a”两者是不同的,s1表示字符,而s2表示字符串。、主串:一个串中任意个连续的字符组成的子序列称为该串的子串,包含该子串的串称为主串。例如有下列四个串:s1=“etoBeijing”s2=“e”s3=“Bei”s4=“eto”其中,s2,s3是s1的子串,s2也是s4的子串,:以子串的第一个字符在主串中的位置来表示。当一个子串在主串中多次出现时,以该子串第一次在主串中出现的位置为该子串在主串中的位置。如上例中s2在s1和s4中的位置都是1,s3在s1中的位置是12两个串相等:两个串的长度相等,并且对应位置上的字符也完全相同。 StrCopy(&T,S);串复制StrLength(S);pare(S,T);串比较 Concat(&T,S1,S2);串联接 SubString(&Sub,S,pos,len);求子串 Index(S,T,pos);串定位(查找)Replace(&S,T,V);串替换StrInsert(&S,pos,T);串插入StrDelete(&S,pos,len);串删除……:,即用数组来存放串中的每一个字符。 #defineMAXSIZE255chars[MAXSIZE+1];//以s[0],因此需预先定义字符串的最大长度,即数组的容量。虽然串的实际长度可在这个予定义长度的范围内随意设定,但是若字符串实际长度超过了最大长度限定,则会予以“截断”,超过予定义长度的串值则被舍去。如串的联接操作,联接后的串长可能大于预先定义的数组的容量,将被“截断”,串联接不能正常运行。因此,定长顺序存储结构并不是较好的存储方式。克服这种弊病的方法是不限定串的最大长度,即采用动态分配顺序存储空间的方法,即堆分配存储。(即动态分配的顺序存储结构)的特点是:仍以一组地址连续的存储单元存储串值的字符序列,但它们的存储空间是在程序执行过程中,通过调用内存管理函数malloc()和realloc()分配而得的。{char*ch;//串的基地址intlength;//串长}Hstring;(1)初始化串voidIniString(HString*Str,intlen){//输入一个串长不大于len的串,将其存入串Str中Str->ch=(char*)malloc((len+1)*sizeof(char));if(Str->ch==NULL){printf(“failed”);exit(0);}printf(“\npleaseinputonestring:”);gets(St