漫談資料結構 四 串

2021-09-10 16:00:40 字數 2709 閱讀 8365

串又稱字串,是比較常見的乙個資料結構,它由0或多個字元構成,一般定義為s="abcdegf"。字元的個數稱為串的長度。長度為0的串為空串,記為s="",由空格組成的串為空格串,空格也是字元,記為s=" "

目前,隨著科學技術的發展,非數值處理的情況越來越多,學好字串的處理變得尤為重要,本文將介紹字串處理的幾個基本方法。

//建立string型別

typedef

struct strstring;

//賦值

intstrassign

(string * s,

char

*p)//給str分配記憶體,多分配乙個空間儲存'\0'

s->str =

(char*)

malloc

(sizeof

(char)*

(i+1))

;//賦值

int j;

for(j=

0;js->str[j]

='\0'

; s->length = i;

return1;

}

//獲取串的長度

intgetlength

(string *s)

先重新為str分配需要的記憶體,然後memset賦『\0』。最後迴圈賦值。

//複製串,將t複製到s中 

void

strcopy

(string *s,string *t)

s->length = t->length;

}

//判斷兩個串是否相等

intstrequal

(string *s1,string *s2)if(

*ss1++

!=*ss2++

)return1;

}

//連線兩個串

intstrconnect

(string *s,string *p)

//拷貝p

for(j=

0;jlength;j++

) temp[j+i]

='\0'

;//字串指向temp

s->str = temp;

s->length = len;

return1;

}

//比較兩個串的大小 

intstrcompete

(string *s,string *p)

//s < p if(

*s1 <

*p1)

s1++

; p1++;}

//兩個字串前n個字元相等時,比較長度

if(slen == plen)

if(slen>plen)

if(slen

}

//插入串  將字串p插入到s的指定位置上 

intstrinsert

(string *s,string *p,

int pos)

int len = s->length + p->length;

char

* temp =

(char*)

malloc

(sizeof

(char)*

(len+1)

);int i,j;

//插入 s的左邊部分

for(i=

0;i)//插入 p

for(j=

0;jlength;j++

)//插入 s的右邊部分

for(

;ilength;i++)

temp[j+i]

='\0'

; s->str = temp;

s->length = len;

}

//刪除 

intstrdelete

(string *s,

int pos,

int length)

int len = s->length - length;

char

* temp =

(char*)

malloc

(sizeof

(char)*

(len+1)

);int i,j;

for(i=

0;ij = pos+length;

for(

;jlength;j++

) temp[i]

='\0'

; s->str = temp;

s->length = len;

return1;

}

//串的順序儲存

#include

#include

#include

intmain()

輸出結果:

串的鏈式儲存可以使用單鏈表來儲存字元,每乙個結點儲存1個字元(密度為1),有利於串的插入或刪除,但它的空間利用率太低。如果乙個結點儲存多個字元,對字串的操作又會變得相當麻煩,得不償失。串的鏈式儲存的實用率很低,使用起來也不靈活,所以,一般都是使用串的順序儲存。

資料結構(四) 串

串 string 是由零個或多個字元構成的有限序列,又叫字串 空格串 只包含空格的串 空串 零個字元的串 串的大小比較 對於數字來說,1與2 誰大誰小不用討論,但是 兩個字串怎麼比較大小呢?計算機的常用字元是使用標準的ascii編碼。所以我們字串的比較就是逐個的比較ascii值的大小 串的一些操作函...

資料結構實驗四 串

一 實驗目的 通過訓練,加深理解並把握串的基本運算的特點。二 實驗內容 問題描述 本題目中的串編輯要求對串實現以下兩種功能 本題目中的串編輯要求對串實現以下兩種功能 插入 把乙個字串插入到給定串的指定位置 刪除 將串中某指定位置開始的若干字元從串中刪除 參考程式 include include in...

資料結構實驗四 串(模式匹配,刪除子串)

實驗三串 一 實驗目的 1 熟悉串的順序儲存結構 2 掌握串的基本運算及應用 二 實驗內容 1 模式匹配 串採用順序儲存結構,編寫樸素模式匹配演算法,查詢在串中是否存在給定的子串。本標頭檔案為實驗四第一問串的順序儲存 include using namespace std const int siz...