字符串
问题描述:
使用C++实现字符串操作,包括操作如下:
问题说明:
/*
* 字符串是一种特殊的线性表,其实现可以采用三种方式
* (1)数组的顺序存储
* (2)链表的链式存储
* (3)存储在堆区的半动态存储
**/
/*
* 下面以堆区的存储实现字符串的一些操作,
* 存储在堆区的半动态存储,集合了数组和链表的优点,动态扩充,存储在连续空间
**/
问题解决:
求解字符串操作中的如上函数:
创建构造函数:
//下面是两种构造函数,有参数的构造函数和无参数的构造函数
(1)复制字符串操作:
注意:
以上使用字符串的操作,使用间接赋值操作,也就是ptr[j]=elem[j];使用*ptr操作,在进行ptr++的操作时,可能引起ptr指针的混乱(其他类体中的函数使用ptr,不正确)。
(2)字符串的查找,这里使用BF算法,算法的思想是:
从字符串中第一个字符开始寻找,找到第一个与待测字符串匹配的位置,开始逐个进行字符串的匹配,如果出现不匹配的情况,那么进行回溯,返回到与待测字符串进行匹配成功的第一个位置的下一个位置,继续进行从头开始的匹配操作。
算法的主要思想就是:回溯
(3)查找字符串中指定的字符
(4)求字符串的子串
(5)字符串连接
(6)求字符串的长度
(7)输出字符串
(8)析构函数
主函数: