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


![clipboard[1] clipboard[1]](http://images0.cnblogs.com/blog/440499/201304/28101311-8a5c1dd068554f60aef8f4151b6e10ea.png)
![clipboard[2] clipboard[2]](http://images0.cnblogs.com/blog/440499/201304/28101312-3b1829d7fba743c89e4abbb77410004c.png)
![clipboard[3] clipboard[3]](http://images0.cnblogs.com/blog/440499/201304/28101312-995d351e9fa04e279936b584cb144f34.png)
![clipboard[4] clipboard[4]](http://images0.cnblogs.com/blog/440499/201304/28101313-5f2d479565b247dcace70f485a34cf5e.png)
![clipboard[5] clipboard[5]](http://images0.cnblogs.com/blog/440499/201304/28101313-01b83fb7c7e54d8aa36146227752291f.png)
![clipboard[6] clipboard[6]](http://images0.cnblogs.com/blog/440499/201304/28101314-7e3d5a5294534948aa7c120736c5f836.png)
![clipboard[7] clipboard[7]](http://images0.cnblogs.com/blog/440499/201304/28101314-64d91441eb464cc7aef7eb4d1a9ce2db.png)
![clipboard[8] clipboard[8]](http://images0.cnblogs.com/blog/440499/201304/28101315-867a688176c647c787a676dd8ad9b4f2.png)
![clipboard[9] clipboard[9]](http://images0.cnblogs.com/blog/440499/201304/28101316-a887a41cad1944dd9998cd5687037654.png)
![clipboard[10] clipboard[10]](http://images0.cnblogs.com/blog/440499/201304/28101316-42ff670733254bd593f71a01286c36ae.png)
![clipboard[11] clipboard[11]](http://images0.cnblogs.com/blog/440499/201304/28101317-ff09671697d64274a9fb804d6cbf4b52.png)
浙公网安备 33010602011771号