串的定長順序儲存表示與實現(c語言)

2021-10-04 07:15:23 字數 2159 閱讀 4227

#include "pch.h"

#include

#include

#include

#include

#define maxlen 225

#define false 0

#define true 1

/*字串順序表示(靜態儲存)*/

typedef struct sstring;

/*構造串*/

intstrassign

(sstring *s,

const

char

*ch)

else

s->len =

strlen

(ch)

;return true;}}

/*資料串插入*/

intstrinsert

(sstring *s,sstring t,

int pos)

//在字串s序號為pos之前插入串t

if(s-

>len+t.len<=maxlen)

for(

int i =

0; i < t.len;i++

) s-

>len = s-

>len + t.len;

}else

if(pos+t.len<=maxlen)

for(i =

0; i < t.len;i++

) s-

>len = maxlen;

}else

s->len = maxlen;

}return true;

}/*串刪除函式,在串中刪除從序號pos起len個字元*/

intstrdelete

(sstring *s,

int len,

int pos)

for(i = pos + len; i < s-

>len;i++

) s-

>len = s-

>len - len;

return true;

}/*串複製函式*/

intstrcopy

(sstring *s,sstring t)

s->len = t.len;

return true;

}/*判空函式*/

intstrempty

(sstring s)

else

return false;

}/*串比較函式*/

/*求串長*/

intstrlength

(sstring s)

/*清空函式*/

intstrclear

(sstring *s)

/*串連線函式*/

intstrcat

(sstring *s,sstring t)

s->len += t.len;

return true;

}else

if(s-

>len < maxlen)

s->len = maxlen;

return false;

/*表示截斷,無法正確連線*/

}else

return false;

}/*求子串函式*/

intsubstring

(sstring *sub,sstring s,

int pos,

int len)

/*將串s中序號為pos起,len個字元複製到sub中*/

else

sub-

>len = len;

return true;}}

/*定位函式*/

intindex

(sstring s,sstring t,

int pos)

/*求串t在串s中的位置*/

i = pos; j =0;

while

(ielse}if

(j >= t.len)

else

return0;

}void

strprint

(sstring s)

printf

("\n");

}int

main()

串的定長順序儲存表示

串的定長順序儲存表示 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...

串的定長順序儲存表示

c4 1.h 串的定長順序儲存表示 define maxstrlen 40 使用者可在255以內定義最大串長 1個位元組 typedef char sstring maxstrlen 1 0號單元存放串的長度 bo4 1.c 串採用定長順序儲存結構 由c4 1.h定義 的基本操作 14個 sstri...