關於串,你知道哪些?

2021-09-16 19:42:34 字數 3515 閱讀 1901

1、串的

adt定義

及基本操作

adt string adt string

基本操作

13

串賦值strassign(

&t,chars)

串複製strcopy(

&t,s)

判空串strempty  (s)

串比較strcompare  (s,t)

求串長strlength  (s)

串清空clearstring  (&s)

串聯結concat  (

&t,s1,s2)

取子串strstring

串匹配index  (s,t,pos)

串置換replace (

&s,pos,t)

串插入strinsert  (

&s,pos,t)

刪子串strdelete  (

&s,pos,len)

串銷毀desroysring  (&s)

2、定位函式

index(s, t, pos )的基本思想及實現。

演算法思想

逐字元逐位比較s串和

t串,不相等時向後移位繼續比較,直至匹配,輸出

i,或到

s尾終止。

int  index (string s,string t,int pos ) ∥while

}∥if

return 0 ;

} ∥index

3、串的

定長順序儲存表示

用定長陣列。長出截斷

!(例,檔案/人名8位

)定義adt儲存表示

maxstrlen=256   char[0.255]  0

位放串長

#define maxstrlen   255

typedef  unsigned char sstring[maxstrlen +1 ];

4、串的連線

concat( &t, s1, s2 )

幾種連線情況的討論

s1 + s2 àt

①s1.len + s2.len

≤maxstrlen

s1, s2

全部拼入t ②

s1.len< maxstrlen    s1.len + s2.len > maxstrlen

s1全部

, s2

部分拼入t③

s1.len= maxstrlen

t=s1

演算法思想:分情況拼接串。

超長截斷

演算法4.2  p73

5、求取子串

substring( &sub, s, pos, len )

*pos、len的合理性

status substring (sstring &sub,sstring s,int pos,int len) ∥substring

6、串的堆分配儲存表示

用一組連續的儲存單元存放。

typedef  struct hstring
通常,

c語言中提供的串型別就是以這種儲存方式實現的。系統利用函式

malloc( )

和free( )

進行串值空間的動態管理,為每乙個新產生的串分配乙個儲存區,稱串值共享的儲存空間為「堆」。

c語言中的串以乙個空字元為結束符,串長是乙個隱含值。

這類串操作的實現演算法為

:先為新生成的串分配乙個儲存空間,然後進行串值的複製。

7、串插入

strinsert( hstring &s, int pos, hstring t )演算法

status strinsert (hstring &s, int pos,  hstring t) 

return ok ;

}∥strinsert

8、堆上的其它

6個操作

串複製strassign ( hstring  &t,  char  *chars );原t

如存在,釋放,另存另分。

求串長strength ( hstring  s )

串比較strcompare ( hstring  s,  hstring  t )

串清空clearstring ( hstring  &s )

串聯接concat ( hstring  &t,  hstring  s1,  hstring  s2 )原t

如存在,釋放,另分,拼

s1,s2存入t

的store

區取子串

substring ( hstring  s,  int  pos,  int  len )

例:漢字:字碼

字模字型檔

字型大小字型

……雷射列印一字一k五筆

/全拼16×16  32

位元組9、串賦值

strassingn( hstring &t, char  *chars )

status strassingn( hstring &t,char  *chars ) 

else  

t.length= i ;

return ok ;

}∥strinsert

'); (window.slotbydup = window.slotbydup || ).push(); })();

'); (window.slotbydup = window.slotbydup || ).push(); })();

關於 ping 一下,你知道哪些?

ping packet internet groper 網際網路包探索器,dos命令中的一種典型的網路診斷工具。ping 是用來檢測本機與網路中另一台主機 即ping後面的目標ip 之間是否可以傳達命令。如果兩台主機之間ping不通,則表明這兩台主機不能建立起連線。它是定位網路通不通的乙個重要手段。...

blog 你知道哪些? 也許對你有用

站點名稱 google自己的部落格 簡單介紹 google自己的部落格,非常容易申請gg廣告 站點名稱 和訊部落格 簡單介紹 財經 人士用得比較多,做ggad的話還是很合適的 站點名稱 中翼網部落格 站點名稱 歪酷部落格 站點名稱 中華網部落格 站點名稱 部落格龍 簡單介紹 比較簡單,裡面提供免費部...

關於 define你知道多少?

編譯乙個c c 程式需要很多步驟,通常,我們第一步都是預處理階段,它的主要任務包括 刪除注釋,插入被include包含的檔案內容,定義和替換,以及確定 部分參與編譯的內容。預定義符號是由預處理器定義的符號,它的值一般是字串常量或者是十進位制的數字常量 符 號 含 義 例 子 file 進行編譯的源檔...