理论教育 2019版数据结构:串操作手册

2019版数据结构:串操作手册

时间:2023-11-03 理论教育 版权反馈
【摘要】:因为串是一个数组,如果将一个数组的值赋给另一个数组,则直接用“=”是不可行的,必须对数组中的每个元素进行逐一赋值操作。串比较代码如下:4.串连接操作将两个串首尾相接,合并成一个字符串的操作称为串连接操作。

2019版数据结构:串操作手册

下面介绍几种串的原子操作,这些操作是构成串其他复杂操作的基石。

1.赋值操作

与普通变量赋值操作不同,串的赋值操作不能直接用“=”来实现。因为串是一个数组,如果将一个数组的值赋给另一个数组,则直接用“=”是不可行的,必须对数组中的每个元素进行逐一赋值操作。串赋值操作函数strassign()具体实现的代码如下所示,其功能是将一个常量字符串赋值给str,赋值操作成功返回1,否则返回0。

函数strassign()使用时格式如下:

strassign(str,"curinput");

此句执行后,str.ch的值为“curinput”,str.len的值为9。

2.取串长度操作

在使用变长分配存储表示的情况下,取串长度的操作就变得极为简单,考试中直接使用str.length语句即可。统一成函数的形式,代码如下:

如果在没有给出串长度信息的情况下,求串长度的操作可以借鉴函数strassign()中的求输入串长度部分的代码来实现,也是非常简单的。(www.daowen.com)

3.串比较操作

串的比较操作是串排序应用中的核心操作。例如,在单词的字典排序中,需要通过串比较操作来确定一个单词在字典中的位置,规则如下:设两串A和B中的待比较字符分别为a和b,如果a的ASCII码小于b的ASCII码,则返回A小于B标记;如果a的ASCII码大于b的ASCII码,则返回A大于B标记;如果a的ASCII码等于b的ASCII码,则按照之前的规则继续比较两串中的下一对字符。经过上述步骤,在没有比较出A和B大小的情况下,先结束的串为较小串,两串同时结束则返回两串相等标记。串比较代码如下:

4.串连接操作

将两个串首尾相接,合并成一个字符串的操作称为串连接操作。串连接操作的实现代码如下:

5.求子串操作

求从给定串中某一位置开始到某一位置结束的串的操作称为求子串操作(规定开始位置总在结束位置前边),如下面的代码实现了求str串中从pos位置开始,长度为len的子串,子串由substr返回给用户。

6.串清空操作

串清空操作的实现代码如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈