1樓:感冒九十九
#include
#include
#define size 20
using namespace std;
class string
int judge() // 檢查字串的實際長度
void copy(const char *p); //拷貝p的字串
返回下標為i的字元
bool find(int left,int right,char *p);//返回從left~right的字串
bool delete(int i); //刪除小標為i的字元,成功返回真
bool delete(int left,int len); //過載函式刪除下標left之後的len個字元
int bf_seek(int i, char *p); //查詢字串是否存在子串p,為真,返回在母串中第一次出現的位置,沒有返回-1
int kmp_seek(int i,char *p); //kmp演算法查詢優化bf演算法
void fail(const char *p); //失敗函式
void disp();
string::string()
string::string(const char *p)
void string::copy(const char *p)
bool string::find(int left,int right,char *p)
bool string::delete(int i)
int string::bf_seek(int i,char *p)
else
}if(j == n) return i-n;
return -1;
}void string::fail(const char *p)
else
k=f[k]; //其他情況下k回溯到f[k]}}
int string::kmp_seek(int i, char *p)
else //2. 其他情況下j回溯到f[j]
j=f[j];
}if(j == n) return i-n;
return -1;
}void string::disp()
int main()
這是我自己做的給你參考一下,雖然和標準庫比起來差了十萬八千里
2樓:
看stl源**,參考sgi stl
求C 中string系列庫函式 如reverse s begins end倒置函式
void memccpy void dest,const void src,int c,size t n 從src所指向的物件複製n個字元到dest所指向的物件中。如果複製過程中遇到了字元c則停止複製,返回指標指向dest中字元c的下一個位置 否則返回null。void memcpy void de...
在c 中怎樣使用string型別
第一個肯定不行,string是需要usingnamespace std 改這樣就可以了.include include void sayhello std string void main void sayhello std string name std cout good morning 不要 ...
C中的String和string有什麼區別?還有ref關鍵
在c 中,string指的是一個類 顏色是綠的 首字母大寫 而string是關鍵字 藍色字 他們表示的都是字串,沒有區別。ref通俗的講就是傳地址,傳入的引數若在方法中有變化,那麼在呼叫的地方也會跟著改變 不加此關鍵字的話,傳入的值就是一個複本而已。 string 和 string 沒有區別 str...