#include
#define true 1
#define false 0
#define ok 1
#define error 0
#define overflow -2
#define maxstrlen 255
typedef
int status;
typedef
int elemtype;
typedef
unsigned
char sstring[maxstrlen +1]
;//0號單元存放串的長度
using
namespace std;
status strassign
(sstring t,
char chars)
return ok;
}status strcopy
(sstring t,sstring s)
t[0]
=s[0];
return ok;
}status strempty
(sstring s)
status strcompare
(sstring s,sstring t)
return s[0]
-t[0];
}status strlength
(sstring s)
status concat
(sstring t,sstring s1,sstring s2)
for(j=
1; j<=s2[0]
; j++
) uncut=true;
}else
if(s1[0]
//截斷
for(j=
1; j<=maxstrlen-s1[0]
; j++
) uncut=false;
}else
// s1[0]>maxstrlen
uncut=false;
}return uncut;
}status substring
(sstring sub,sstring s,
int pos,
int len)
else
return ok;
}status index
(sstring s,sstring t,
int pos)
}return0;
}status strinsert
(sstring s,
int pos,sstring t)
for(i =
1; i <=t[0]
; i++
) s[0]
= s[0]
+ t[0]
;return true;
}else
for(i =
1; i <= maxstrlen - s[0]
; i++
)return false;}}
status strdelete
(sstring s,
int pos,
int len)
s[0]
-= len;
return ok;
}status strprint
(sstring s)
cout << endl;
return0;
}int
main()
else
cout <<
"求子串失敗!"
<< endl;
cout
"請輸入要查詢的子串:"
; cin>>c;
strassign
(sub,c)
; cout<<
"請輸入要從哪個位置之後開始查詢:"
; cin>>pos;if(
index
(t2,sub,pos)
)else
cout <<
"查詢失敗"
<< endl;
cout
"在串s1的第pos位置插入串s2"
<< endl;
cout <<
"輸入pos的值:"
; cin >> pos;if(
strinsert
(s1, pos, s2)==1
)else
cout <<
"插入失敗"
<< endl;
cout
"從串s1中刪除第pos位置起長度為len的字元"
<< endl;
cout <<
"輸入pos,len的值:"
; cin >> pos >> len;if(
strdelete
(s1, pos, len)==1
)else
cout <<
"刪除失敗"
<< endl;
return0;
}
第四章 串 陣列和廣義表
一 串 1.順序儲存 順序儲存 struct hstring 2.鏈式儲存 鏈式儲存 define chuncksize 80 使用者定義塊的大小,每一塊 3.串的模式匹配演算法 bf演算法 經典 和kmp演算法 速度快 bf演算法 index s,t,pos 將主串s的第pos個字元和模式t的第乙...
第四章串 陣列 廣義表(4 1 4 3 2)
目錄4.3串的型別定義 儲存結構及其運算 串 string 是由零個或者多個字元組成的有限序列,又名叫字串。一般記為s a1a2 an n 0 其中s是串的名稱,用雙引號括起來括起來的字串行是串的值,引號不屬於串的內容。ai 1 i i 可以是字母,數字或者其他字元,i就是該字元在串中的位置。串中的...
第四章串 陣列 廣義表(4 4 4 5)
目錄4.4.2陣列的順序儲存 4.4.3特殊矩陣的壓縮儲存 2.三角矩陣 3.對角矩陣 4.5廣義表 n維陣列中含有 i 1 n b i prod n b i i 1nbi個資料元素,每個資料元素都受著n個關係的約束 在每個關係中,元素 a j 1 j 2 j n 0 j i b i 2 a 0 l...