关于字符串的数据结构知识点都在这了,太难的我也不会了QAQ

本文详细介绍了字符串的定义,包括空串、空格串和子串的概念。接着探讨了串的比较方法,基于ASCII编码进行。文章还介绍了串的抽象数据类型和基本操作,如赋值、判断空串、求长度等。串的存储结构方面,讨论了顺序存储和块链式存储,以及各自的优缺点。最后,文章简要提及了两种模式匹配算法:朴素的Brute-Force算法和KMP算法,强调了KMP算法在避免回退方面的改进。
摘要由CSDN通过智能技术生成

在这里插入图片描述

串的定义

由零个或多个字符组成的有限序列,又名叫字符串。

区分部分概念:

1、空串,零个字符的串;

2、空格串,是只包含空格的串。注意它与空串的区别,空格串是有内容有长度的,而且可以不止一个空格。

3、子串与主串,字符串中任意个数的连续字符组成的子序列称为该串的子串,相应地,包含子串的串称为主串。

子串在主串中的位置就是子串的第一个字符在主串中的序号。

注意:子序列与子串,子序列是指一个字符串中非连续的字串,

例如:字符串A:abshdnc 其中,子序列:as(非连续) 子串:abs(连续)。

串的比较

通过组成串的字符之间的编码进行比较,即字符在对应字符集中的序号。常用字符是使用标准的ASCII编码。

如果要比较两个串是否相等,必须是串的长度以及它们各个对应位置的字符都相等。

抽象数据类型

串具有线性表的特征:除了第一个元素a1外,每一个元素有且只有一个直接前驱元素;除最后一个元素an外,每一个元素有且只有一个直接后继元素。数据元素之间的关系是一对一的关系 。

串的基本操作

StrAssign(&S,cstr):串的赋值操作。把字符串常量cstr赋值给S

StrEmpty(S):判断串是否为空。如果是空串,则返回1,否则返回0。

StrLength(S):求串的长度。返回串中的字符个数。

StrClear(&S):清空串。将串的值清空。

StrCopy(&T,S):串的复制。由字符串S复制产生一个与S完全相同的另一个字符串T。

StrCompare(S,T):串的比较。比较串S和T的每个字符的ASCII值的大小,如果S的值大于T,则返回1;如果S的值等于T,则返回0;如果S的值小于T,则返回-1。

StrInsert(&S,pos,T):串的插入操作。在串S的第pos个位置插入串T,若插入成功,返回1;否则返回0 。

StrDelete(&S,pos,len):串的删除操作。如果在串S中删除第pos个字符开始,长度为len的字符串。如果找到并删除成功,返回1;否则返回0。

StrConcat(&T,S):串的连接。将串S连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值