2023年數(shù)據(jù)結(jié)構(gòu)順序串基本操作實(shí)驗(yàn)報告_第1頁
2023年數(shù)據(jù)結(jié)構(gòu)順序串基本操作實(shí)驗(yàn)報告_第2頁
2023年數(shù)據(jù)結(jié)構(gòu)順序串基本操作實(shí)驗(yàn)報告_第3頁
2023年數(shù)據(jù)結(jié)構(gòu)順序串基本操作實(shí)驗(yàn)報告_第4頁
2023年數(shù)據(jù)結(jié)構(gòu)順序串基本操作實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告課程數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)名稱順序串基本操作院系電信學(xué)院專業(yè)班級計(jì)科10—4姓名學(xué)號一、實(shí)驗(yàn)?zāi)康?)熟悉串的定義和串的基本操作。2)掌握順序串的基本運(yùn)算。3)加深對串?dāng)?shù)據(jù)結(jié)構(gòu)的理解,逐步培養(yǎng)解決實(shí)際問題的編程能力。二、實(shí)驗(yàn)環(huán)境裝有VisualC++6.0的計(jì)算機(jī)。本次實(shí)驗(yàn)共計(jì)2學(xué)時。三、實(shí)驗(yàn)內(nèi)容編寫一個程序,實(shí)現(xiàn)順序串的各種基本運(yùn)算,并在此基礎(chǔ)上設(shè)計(jì)一個主程序。具體如下:編寫串的基本操作函數(shù)順序串類型定義如下所示:lypedefstruct{charch[MAX];inilength;

longth=StrLength(tl);〃求串11的長度printf("串t1的長度為:%d\n",1ongth);。printf("串s:*');?DispStr(s);§s§s2=1nsStr(s,9,sl);§s2=1nsStr(s,9,sl)§s2=1nsStr(s,9,sl);//將串s1插入串s的第9個位置,得串s2printf("串s2:");oDispStr(s2);oDispStr(s2);oDispStr(s2);//輸出串oDispStr(s2);//輸出串s2s3s3s3=DelStr(s,2,5);//刪除ss3s3=DelStr(s,2,5);//刪除s第2個字符開始的5個字符而產(chǎn)生串s3,并輸出sprindT串s3:H);DispStr(s3);DispStr(s3);//輸出串DispStr(s3);//輸出串s3s4=RepStr(s,2,5?si);s4=RepStr(s,2,5?si);//用串sis4=RepStr(s,2,5?si);//用串si替換串s中從第2個字符起連續(xù)5個字符得到新串printf("串s4:M);DispStr(s4);DispStr(s4);〃輸出串DispStr(s4);〃輸出串s4s5=SubStr(s,2,10);//提取串s中第2個字符開始的10個字符而產(chǎn)生串s5printf("串s5:”);?DispStr(s5)?DispStr(s5);?DispStr(s5);?DispStr(s5);〃輸出串s5s6=Concai(s1,t);〃連接串si和l而產(chǎn)生串s6printf(“串s6:");ssDispS(r(s6);sDispS(r(s6);sDispS(r(s6);//輸出串s6same=StrEqual(sl,s5);//判斷si、s5是否相等if(same==1)printf(“串s1、s5相等!”);elseprintf(“串s1、s5不相等!");kong=IsEmpty(s3);//判斷s3是否為空if(kong==1)prinlf("\n串s3為空!");elseprintf("\n串s3不為空八n");}SeqString;(1)串賦值A(chǔ)ssign(s,t)將一個字符串常量賦給串s,即生成一個其值等于t的串s(2)串復(fù)制StrCopy(sj)將串t賦給串s(3)計(jì)算串長度StrLength(s)返回串s中字符個數(shù)(4)判斷串相等StrEquaKs,t)若兩個用s與t相等則返回1;否則返回Oo(5)串連接Coneat(s,t)返回由兩個串s和t連接在一起形成的新事。(6)求子串SubStr(s,i,j)返回串s中從第i(lWiWStrLength(s))個字符開始的、由連續(xù)j個字符組成的子串。(7)插入InsStr(s,i,t)將串t插入到串s的第i(lWiWStrLength(s)+1)個字符中,即將t的第一個字符作為s的第i個字符,并返回產(chǎn)生的新申(8)串刪除DelStr(sj.j)從串s中刪去從第i(lWiWStrLength(s))個字符開始的長度為j的子串,并返回產(chǎn)生新串。(9)串替換RepStr(s,sl,s2)在串s中,將所有出現(xiàn)的子串s1均替換成s21,(10)輸出串DispStr(s)輸出串s的所有元素值(ID判斷串是否為空IsEmpty(s)為空返回1,不為空返回0編寫主函數(shù)調(diào)用上述函數(shù)實(shí)現(xiàn)下列操作:建立串s="abcdefghijklmn”,串sl=“xyz”,串t=“hijk”復(fù)制串t到tl,并輸出U的長度(3)在申s的第9個字符位置插入用si而產(chǎn)生串s2,并輸出s2(4)刪除s第2個字符開始的5個字符而產(chǎn)生串S3,并輸出s3(5)將用s第2個字符開始的3個字符替換成用si產(chǎn)生串s4,輸出s4提取串s的第2個字符開始的10個字符而產(chǎn)生串s5,并輸出s5將串si和串t連接起來而產(chǎn)生串s4,并輸出s4比較串si和s5是否相等,輸出結(jié)果(9)判斷s3是否為空四、源程序代碼include<stdio.h>defineMAX100typedefstruct(charch[MAX];nt1ength;)SqString;voidStrAssign(SqString&s,chart[])〃串賦值ofor(i=O;t[i]!='\0';i++)s.ch[i]=t[i];sJength=i;)voidStrCopy(SqString&s,SqStringt)//串復(fù)制(。inti;for(i=0;i<t.1ength;i++)*s.ch[i]=t.ch[i];?s.length=t.1ength;)intStrEqual(SqStrings,SqStringt)//判斷串相等(intsame=l,i;if(s.length!=t,length){osame=0;0)oe1$e{for(i=0;i<s.length;i++)。if(s.ch[i]!=t.ch[i]){s8same=0;abreak;°)return(same);intStrLcngth(SqStrings)//計(jì)算串長度(return(s.lcngth);)SqStringConeat(SqStrings,SqStringt)〃串連接(aSqStringstr;inti;str.1ength=s.length4-t.length;◎for(i=O;i<s.1ength;i++)str.ch[i]=s.ch[i];for(i=0;i<t.length;i++)◎str.ch[s.iength+i]=t.ch[i];returnstr;}SqStringSubStr(SqStrings,inti,intj)//求子串(oSqStringstr;intk;?str.length=0;if(i<=0|Ii>s.Iength|[j<0||i4-j—l>s.length)^returnstr;ofor(k=i-1:k<i+j-l;k++)?str.ch[k-i+1]=s.ch[k];str.1ength=j;returnstr;}SqStringInsStr(SqStrings1,inti,SqStrings2)〃插入(intj;6qStringstr;ostr.length=0;f(i<=0||i>sl.length+1)odrcturnstr;?for(j=0;j<i-1;j++)8str.ch[j]=s1.ch[j];for(j=0;j<s2.1ength;j++)^str.ch[i+j-1]=s2.ch[j];0for(j=i-l;j<s1.Iength;j++)?str.ch[s2.1ength+j]=sl.ch[j];astr.length=s1.length+s2.1ength;returnstr;ISqStringDe1Str(SqStrings,inti,intj)〃刪除(ointk;SqSlring?str.length=0;Af(i<=0I|i>s.lenglh|Ii+j>s.1ength+1)sreturnstr;。for(k=0;k<i-l;k++)?str.ch[k]=s.ch[kJ:。for(k=i+j-1;k<s.length;k++)8str.ch[k-j]=s.ch[k];?str.length=s.length-j;returnstr;)SqStringRepStr(SqStrings,inti,intj,SqStringt)//替換(ntk;eSqStringstr;§str.lcngth=O:aif(i<=0||i>s.1ength||i+j—1>s.1ength)returnstr;ofor(k=0;k<i-l;k++)?str.ch[k]=s.ch[k];?for(k=O;k<t.1ength;k++)str.ch[i+k-l]=t.ch[k];9for(k=i+j-l;k<s.1ength;k++)str.chft.length+k—j]=s.chfk];?str.lcngth=s.length-j+t.lcngth;eturnstr;)voidDispstr(SqStrings)//輸出率所有元素,if(s.length>0){for(i=0;i<s.length;i++)oooprintf("%c",s.ch[i]);oprintfCXn");0))intIsEmpty(SqStrings)//判斷串是否為空(f(s.length>0)return0;〃不為空else//為空intmain(void)voidStrAssign(SqString&s,chart[]);//串賦值0VoidStrCopy(SqString&s,SqStringt);〃串藥制intStrEqual(SqStrings,SqStringt);//判斷串相等intStrLength(SqStrings);//計(jì)算串長度SqSiringConcal(SqStrings,SqStringt);〃串連接SqStringSubStr(SqStrings,inti,intj);//求子串SqStringInsStr(SqStrings1,inti,SqStrings2);//插入SqStringDelStr(SqStrings,inti,intj);//刪除SqStringRepStr(SqStrings,inti,intj,SqStringt);//替換voidDispStr(SqStrings);〃輸出串所有元素intisEmpty(SqStrings);//判斷串是否為空ocharchl[]-'abedefghijk1mn",ch2[]=Mxyz0,ch3[]="hijk";aSqStr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論