[cpp]view plain
copy
/**檔名稱:kmp.cpp
*完成日期:2023年10月27日
*版本號:vc++6.0
**問題描述:計數的模式匹配
*輸入描述:無
*程式輸出:匹配合適個數*/
[cpp]view plain
copy
#ifndef head_h_included
#define head_h_included
#include
#include
#define maxsize 100
typedef
struct
sqstring;
void
strassign(sqstring &s,
char
cstr);
//字串常量cstr賦給串s
void
strcopy(sqstring &s,sqstring t);
//串t複製給串s
bool
strequal(sqstring s,sqstring t);
//判串相等
intstrlength(sqstring s);
//求串長
sqstring concat(sqstring s,sqstring t); //串連線
sqstring substr(sqstring s,int
i,int
j);
//求子串
sqstring insstr(sqstring s1,int
i,sqstring s2);
//串插入
sqstring delstr(sqstring s,int
i,int
j) ;
//串刪去
sqstring repstr(sqstring s,int
i,int
j,sqstring t);
//串替換
void
dispstr(sqstring s);
//輸出串
intstr_count(sqstring s,sqstring t);
#endif // head_h_included
[cpp]view plain
copy
#include "head.h"
intmain()
[cpp]view plain
copy
#include "head.h"
#include
void
strassign(sqstring &s,
char
cstr)
//´®->´®
void
strcopy(sqstring &s,sqstring t)
bool
strequal(sqstring s,sqstring t)
return
true
; }
intstrlength(sqstring s)
//串的連線
sqstring concat(sqstring s,sqstring t)
//求子串
sqstring substr(sqstring s,int
i,int
j)
str.length=j;
return
str;
} //串的插入
sqstring insstr(sqstring s1,int
i,sqstring s2)
//刪除子串
sqstring delstr(sqstring s,int
i,int
j)
//串的替換
sqstring repstr(sqstring s,int
i,int
j,sqstring t)
void
dispstr(sqstring s)
} intstr_count(sqstring s,sqstring t)
else
if(j==t.length)
} return
count;
}
執行結果:
知識點總結:
以kmp演算法為基礎,多增加了乙個計數器,當匹配成功後,將計數器加一,再從下乙個位置繼續匹配,找到下乙個合適的子串,最後輸出這個計數器。
第八周 專案5計數的模式匹配
all right reserved.檔名稱 project5.cpp 作 者 商文軻 完成日期 2015年10月20日 版 本 號 v1.9 問題描述 採用順序結構儲存串,編寫乙個演算法計算指定子串在乙個字串中出現的次數,如果該子串不出現則為0 程式採用多組織結構,用到順序串演算法庫sqstrin...
第八周 專案5 計數的模式匹配
檔名稱 main.cpp 作者 王超 完成日期 2015年10月23日 問題描述 計數的模式匹配 include include sqstring.h int main include include include sqstring.h int str count sqstring s,sqstr...
第八周專案5計數的匹配模式
問題及描述 輸入描述 sqstring.h ifndef sqstring h included define sqstring h included define maxsize 100 最多的字元個數 typedef struct sqstring void strassign sqstring...