对串的基本操作都全已经实现
对kmp,kf字符串替换等功能全都已经实现
由于时间原因。没来得及注释,希望大家参考见谅。
串操作hstring.h头文件实现
//kallen
1 #ifndef _HSTRING_H_ 2 #define _HSTRING_H_ 3 #include <iostream> 4 class mString 5 { 6 public: 7 mString(); 8 void newString(const char *ms); 9 ~mString(); 10 bool isEmpty()const; 11 int lengthString()const; 12 void copyString(const mString &src); 13 friend int compareString(const mString &lhs,const mString &rhs); 14 void clearStirng(); 15 void concatString(const mString &lhs_src,const mString &rhs_src); 16 void subString(const mString &src,int pos,int len); 17 void insertString(int pos,const mString &ms); 18 void deleteString(int pos,int len); 19 int indexkfString(const mString &mt,int pos); 20 int indexkmpString(const mString &mt,int pos,int *next); 21 void replaceString(int repos,const mString& mt,const mString &mv,int *next); 22 23 void insaftposString(int pps,const mString& mt,const mString& mv); 24 void printString()const; 25 private: 26 char *base; 27 int length; 28 void nextSt(const mString& mt,int *next); 29 }; 30 31 #endif //_HSTRING_H_
hstring.cpp的实现代码
1 #include "hstring.h" 2 3 mString::mString() 4 { 5 base = NULL; 6 length = 0; 7 } 8 9 mString::~mString() 10 { 11 if (base!=NULL) 12 { 13 delete base; 14 } 15 base = NULL; 16 } 17 18 void mString::newString(const char *ms) 19 { 20 int i = 0; 21 while(ms[i]!='