C語言順序串 BF演算法

2021-10-25 00:01:28 字數 2456 閱讀 9666

**如下:

#include

#include

#include

#define maxsize 50

//靜態順序串的最大容納量

typedef

struct

sstring;

void

initstring

(sstring &s)

//初始化串,靜態順序串中,只讓串長等於0,便是對串的初始化

intstrassign

(sstring &s,

char chars)

//串的賦值,使陣列chars中的資料元素填入串s中

s.ch[i+1]

= chars[i]

;//串的儲存是從1開始的,而陣列元素的儲存是從0開始的

i++;}

s.length = i;

//長度便是i

return0;

}int

isempty

(sstring s)

//判斷串是否為空,如果為空返回1,否則返回0

void

outputstr

(sstring s)

//列印串

intstrcopy

(sstring &t,sstring s)

//串s的copy(複製),使串s中的資料複製到串t中

int i;

for(i=

1;i<=s.length;i++

)//利用迴圈對空串t賦值

t.length = s.length;

//因為是拷貝,所以串t長度等於串s長

return0;

}int

strcompare

(sstring s,sstring t)

//比較串s和串t的大小,

intsubstring

(sstring &t,sstring s,

int i,

int len)

//求子串

if(i<

1||i>s.length)

//判斷位置是否錯誤

if(i+len > s.length+1)

//判斷所求子串是否在串s的範圍內

int j=

1,a=i;

for(

;i)//利用迴圈賦值

t.length = len;

//子串長為len

return0;

}int

strinset

(sstring &s,sstring t,

int i)

//串的插入,使串t插入到串s的第i個位置

if(i<

1||i>s.length+1)

//判斷插入位置i是否合理

sstring l;

//重新申請乙個串

l.length = s.length+t.length;

//使串s和串t都插入到重新申請的串l中

int j=1;

for(

;j)//在串s的第i位之前的資料匯入串l

l.ch[j]

= s.ch[j]

;for

( j=

1;j<=t.length;j++

)//串l第i位開始,匯入串t

l.ch[i+j-1]

= t.ch[j]

;for

( j=i+t.length;j<=l.length;j++

)//使未匯入串l的串s剩餘部分匯入

l.ch[j]

= s.ch[j-t.length]

; s = l;

//輸出s

return0;

}int

strdelete

(sstring &s,

int i,

int len)

//串s的刪除,刪除串s從第i位開始長度為len的子串,並返回s

if(i+len>s.length+1)

//判斷所刪除子串是否在串s的範圍內

for(

;i1;i++

) s.ch[i]

= s.ch[i+len]

; s.length = s.length-len;

//長度變為刪除之後的長度

return0;

}int

bf(sstring s,sstring t)

//求子串在主串的位置 ,bf演算法

else

//繼續比較後繼字元 }if

(j<=t.length)

//匹配失敗

return0;

return i-j+1;

//匹配成功,並返回其值

}int

main()

(完)

串的BF演算法

專案名稱 串的模式匹配演算法 編譯環境 vc 2008 作者相關 最後修改 2019.10.11 學習目標 1.bf演算法 注意事項 1.測試所有功能是否正常 include include define error 0 define ok 1 define maxstrlen 255 typede...

串的模式匹配(C語言實現) BF演算法

串的模式匹配演算法 子串的定位運算 演算法思想 設有主串s,模式t。有 i 和 j 分別指向s和j的首個元素。i 1 j 1 設有pos。pos指t在s中首次出現的位置的首位址。初始指向s的首元素。將t中的首個元素與s中首個元素對比 若相同 i 與j 對比 關於儲存 採用定長順序儲存結構。ps 從下...

串 BF演算法(匹配子串)

include include using namespace std define maxlen 255 bf演算法,匹配子串 typedef struct sstring string strassign sstring s,string e return ok int index bf sst...