串的相关概念

串/字符串:由零个或多个字符组成的有限序列。

序列说明串的相邻字符之间具有前驱和后继的关系。

串的长度:串中字符的数目。
空串:零个字符的串。
空格串:只含有空格的串
子串:串中任意个数的连续字符组成的子序列
主串:包含字串的串称为主串。

串的比较

串的抽象数据类型

StrAssign(T,*chars); //生成一个其值等于字符串常量chars的串T
StrCopy(T,S); //串S存在,使串S复制得T
ClearString(S); //串S存在,将串清空
StringEmpty(S); //若串S为空,返回true,否则返回false
StrLength(S); //返回串S的元素个数
StrCompare(S,T); //若S>T,则返回值>0;若S=T,返回值0;若S<T,返回值<0
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);

串的逻辑结构和线性表相似。不同之处在于存储的元素。而且线性表关注对单个字符操作,而字符串更关注对特定子串的操作。

串的在内存中的存储结构

顺序存储

在这里插入图片描述
两串的连接。新串的插入,以及字符串的替代都有可能是新串的长度超过数组的长度,以至于尾部信息被截去。

经过改进,串的存储空间可在程序执行过程中动态分配。例如应用 malloc() 和 free() 函数来管理。

链式存储

在这里插入图片描述
最后一个结点若是未被占满,可以用“#”或其他非串值字符补全。

不如顺序存储结构灵活,性能也不如顺序存储结构好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值