/*c4-1.h 串的定長順序儲存表示
*/#define maxstrlen 40 /* 使用者可在255以內定義最大串長(1個位元組) */typedef
char sstring[maxstrlen+1]; /*
0號單元存放串的長度
*/
/*bo4-1.c 串採用定長順序儲存結構(由c4-1.h定義)的基本操作(14個)
*//*
sstring是陣列,故不需引用型別。此基本操作包括演算法4.2,4.3,4.5
*/status strassign(sstring t,
char *chars) }
status strcopy(sstring t,sstring s)
status strempty(sstring s)
intstrcompare(sstring s,sstring t)
intstrlength(sstring s)
status clearstring(sstring s)
status concat(sstring t,sstring s1,sstring s2)
/*演算法4.2改
*/
else
} status substring(sstring sub,sstring s,
int pos,int
len)
int index(sstring s,sstring t,int
pos)
else
/*指標後退重新開始匹配
*/
if(j>t[0
])
return i-t[0
];
else
return0;
}else
return0;
} status strinsert(sstring s,
intpos,sstring t)
else
} status strdelete(sstring s,
int pos,int
len)
status replace(sstring s,sstring t,sstring v)
}while
(i);
return
ok; }
void
destroystring()
void
strprint(sstring t)
/*main4-1.c 檢驗bo4-1.c的主程式
*/#include
"c1.h
"#include
"c4-1.h
"#include
"bo4-1.c
"void
main()
printf(
"串長為%d 串空否?%d(1:是 0:否)\n
",strlength(s1),strempty(s1));
strcopy(s2,s1);
printf(
"拷貝s1生成的串為: ");
strprint(s2);
printf(
"請輸入串s2: ");
gets(c);
k=strassign(s2,c);
if(!k)
i=strcompare(s1,s2);
if(i<0
) s='
<';
else
if(i==0
) s='='
;
else
s='>';
printf(
"串s1%c串s2\n
",s);
k=concat(t,s1,s2);
printf(
"串s1聯接串s2得到的串t為: ");
strprint(t);
if(k==false)
printf(
"串t有截斷\n");
clearstring(s1);
printf(
"清為空串後,串s1為: ");
strprint(s1);
printf(
"串長為%d 串空否?%d(1:是 0:否)\n
",strlength(s1),strempty(s1));
printf(
"求串t的子串,請輸入子串的起始位置,子串長度: ");
scanf(
"%d,%d
",&i,&j);
k=substring(s2,t,i,j);
if(k)
printf(
"從串t的第pos個字元起,刪除len個字元,請輸入pos,len: ");
scanf(
"%d,%d
",&i,&j);
strdelete(t,i,j);
printf(
"刪除後的串t為: ");
strprint(t);
i=strlength(s2)/2
; strinsert(s2,i,t);
printf(
"在串s2的第%d個字元之前插入串t後,串s2為:\n
",i);
strprint(s2);
i=index(s2,t,1
); printf(
"s2的第%d個字母起和t第一次匹配\n
",i);
substring(t,s2,
1,1);
printf(
"串t為:");
strprint(t);
concat(s1,t,t);
printf(
"串s1為:");
strprint(s1);
replace(s2,t,s1);
printf(
"用串s1取代串s2中和串t相同的不重疊的串後,串s2為: ");
strprint(s2);
}
串的定長順序儲存表示
串的定長順序儲存表示 define maxstrlen 40 使用者可在255以內定義最大串長 1個位元組 typedef char sstring maxstrlen 1 0號單元存放串的長度 串採用定長順序儲存結構的基本操作 14個 sstring是陣列,故不需引用型別。此基本操作包括演算法4....
串的定長順序儲存表示
串的定長順序儲存表示是一種類似於線性表的順序儲存結構,用一組位址連續的儲存單元儲存串值的字串行。在實現時主要實現以下功能 int length sstring s 串長 bool stringconcat sstring t,sstring s1,sstring s2 用t返回s1和s2連線的串 v...
C語音 串的定長順序儲存表示
參考嚴蔚敏 吳偉民版 資料結構 c語言版 類似線性表的順序儲存結構,用一組位址連續的儲存單元儲存串值的字串行。串的定長順序儲存表示 define maxstrlen 255 使用者定義的最大串長 typedef unsigned char sstring maxstrlen 1 0號位置存放串的長度...