數(shù)據(jù)結構試驗5串子系統(tǒng)_第1頁
數(shù)據(jù)結構試驗5串子系統(tǒng)_第2頁
數(shù)據(jù)結構試驗5串子系統(tǒng)_第3頁
數(shù)據(jù)結構試驗5串子系統(tǒng)_第4頁
數(shù)據(jù)結構試驗5串子系統(tǒng)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、驗證性實驗5:串子系統(tǒng)班級學號 012301114114 姓名 胡德文1 .實驗目的(1)掌握串的特點及順序定長存儲的方式。(2)掌握串的創(chuàng)建、連接、插入、刪除、顯示等操作。(3)掌握串的查找、取子字符串、比較串大小的操作(4)掌握模式匹配的基本思想及其算法。2 .實驗內容(1)由用戶通過鍵盤輸入建立一個字符串。(2)編寫插入、刪除、查找、比較、取子字符串、連接字符串、顯示、模式匹配等程 序。(3)設計一個選擇式菜單,以菜單方式選擇上述操作。串子系統(tǒng)*1-輸入字串*2-_-連接字串*3-取出子串*4-刪除子串*5-插入子串*6-查找子串*7-比較串大小*8-顯示字串*0-返回*請輸入菜單選項(

2、0-8):3 .實驗程序#include <stdio.h>#define STRINGMAX 100typedef struct char vec STRINGMAX;int len;str;void ConcatStr(str *r1,str *r2) int i;printf("nttr1=%s r2=%sn",r1->vec,r2->vec);if 6->len+r2->len>STRINGMAX)printf("nnt 兩個串太長,溢出!n");else for (i=0;i<r2->len

3、;i+)r1->vecr1->len+i=r2->veci;r1->vecr1->len+i='0'r1->len=r1->len+r2->len;) ) void SubStr(str *r,int i,int j) int k;str a;str *r1=&a;if (i+j-1>r->len) printf ("ntt 子串超界!n"); return;) elsefor (k=0;k<j;k+)r1->veck=r->veci+k-1;r1->len=j;r1

4、->vecr1->len=''0')printf("ntt取出字符為:");puts(r1->vec);)void DelStr(str *r,int i,int j)int k;if(i+j-1>r->len)printf("ntt所要刪除的子串超界!n");else for (k=i+j;k<r->len;k+,i+) r->veci=r->veck; r->len=r->len-j;r->vecr->len=''0') )

5、str *InsStr(str *r,str *r1,int i) int k;if(i>=r->len|r->len+r1->len>STRINGMAX) printf("ntt不能才f入!n");else for(k=r->len-1;k>=i;k-) r->vecr1->len+k=r->veck; for(k=0;k<r1->len;k+) r->veci+k=r1->veck;r->len=r->len+r1->len;r->vecr->len=

6、9;'0') return r;)int IndexStr(str *r,str *r1)int i,j,k;for(i=0;r->veci;i+)for(j=i,k=0;r->vecj=r1->veck;j+,k+)if(!r1->veck+1)return i;return -1;int LenStr(str *r)int i=0;while(r->veci!='0')i+;return i;str*CreateStr(str *r) gets(r->vec);r->len=LenStr(r);return r;in

7、t EqualStr(str *r1,str *r2)for(int i=0;r1->veci&&r2->veci&&r1->veci=r2->veci;i+);return r1->veci-r2->veci;void main()str a,b,c,d;str *r=&a,*r1;r->vec0='0'char choice,p;int i,j,ch=1;while(ch!=0)printf("n");printf("ntt串子系統(tǒng)");printf(&

8、quot;ntt*");printf("ntt*1 輸入字串*")printf("ntt*2 連接字串*")printf("ntt*3 取出子串*")printf("ntt*4 刪除子串*")printf("ntt*5 插入子串*")printf("ntt* 6 查 找 子 串*")printf("ntt* 7 比較 串大小*")printf("ntt* 8 顯 示 字 串*")printf("ntt* 0 返回*&

9、quot;)nr*;r-t4-F/H*”、printf("ntt 請選擇菜單號(0-8): ");scanf("%c",&choice);getchar();if(choice='1')printf("ntt 請輸入一個字符串:");gets(r->vec);r->len=LenStr(r);else if(choice='2')printf("ntt 請輸入所要連接的串:");r1=CreateStr(&b);ConcatStr(r,r1);printf

10、("ntt 連接以后的新串值為:");puts(r->vec);else if(choice='3')printf("ntt 請輸入從第幾個字符開始:");scanf("%d",&i);getchar();printf("ntt 請輸入取出的連續(xù)字符數(shù):");scanf("%d",&j);getchar();SubStr(r,i,j);else if(choice='4')printf("ntt 請輸入從第幾個字符開始:"

11、);scanf("%d",&i);getchar();printf("ntt 請輸入刪除的連續(xù)字符數(shù):");scanf("%d",&j);getchar();DelStr(r,i-1,j);else if(choice='5')printf("ntt 請輸入在第幾個字符前插入: ");scanf("%d",&i);getchar();printf("ntt 請輸入所要插入的字符串: ");r1=CreateStr(&b);Ins

12、Str(r,r1,i-1);else if(choice='6')printf("ntt 請輸入所要查找的字符串: ");r1=CreateStr(&b);i=IndexStr(r,r1);if(i!=-1)printf("ntt第一次出現(xiàn)的位置是第個.n",i+1);elseprintf("ntt 該字串不在其中! n");else if(choice='7')printf("ntt請輸入第一個串: ");gets(c.vec);printf("ntt請輸入第二個

13、串: ");gets(d.vec);int k=EqualStr(&c,&d);if(k>0)printf("ntt第一個串大!n");else if(k<0)printf("ntt第二個串大!n");elseprintf("ntt 兩個串一樣大!n");else if(choice='8')printf("ntt 該串值為:");if(r->vec0='0')printf(" 空! n");elseputs(r->

14、;vec);else if(choice='0')break;elseprintf("ntt 請注意:輸入有誤!n");if(choice!='X'&&choice!='X')printf("ntt 按【 Enter 】鍵繼續(xù),按任意鍵返回主菜單.");p=getchar();if(p!='xA')getchar();break;4程序運行七: 1皴據(jù)結構Debu&5.eze串子系統(tǒng)小 S事SS軍S大事回入第除入鬟不 整取,查比顯這 一 一一一 一一二2345678U

15、X:二二:請選擇菜單號。-8: 1謂稀入一'字符申:他c技【Fnt”】健穗.按任芭鍵返回主菜單.”"G; 數(shù)據(jù)結構D.bug5. sc'技【Ent”】境地續(xù)。按任念便返回主菜單.串子系統(tǒng)X小 f s ffi s a a MX5£±££±£.-MX 入本壬除入戊頊示XX 型啾察青”顯返“ 一 - _ 二 一 . _ k連接以后的新昂值為:ahc“F技 *nt:”】槿游運.按阡旁犍返回中菜單.按EntepJ慢繼續(xù),笈任意鍵返回主菜單.率子系統(tǒng)請選譚票堂號日-8: 3請輸入從第幾個字符開始:2請輸入取出的連續(xù)字將數(shù)

16、:2取出字符為:be按FntevJ鍵繼續(xù),充任憨鍵返回主菜羊.onsssss/S目 生于千本吐字入捋出除入找交示 墨取督查收顯返 _釬"G: 數(shù)據(jù)結構Debucsy_4. cxc'口國 取出字符為:人按Enter】鍵繼柒,發(fā)任至犍返回主菜單.串子系統(tǒng)吊回 H4rb子子干了針子 入營除入我交示 要取翦查匯顯返請選擇菜單號0-8:請前入從第幾個字符開始:3請而入刪除的連續(xù)字殍數(shù):3技【Ent”】糙繼牧,技仟童鞋返回主菜!同可"C:數(shù)據(jù)結構Dobug.y_* 0X0*請輸入從笫幾個字符開始:3請諭入冊除的淬續(xù)字符數(shù):3按Enter】槎繼續(xù),按E螢鍵返回主菜單.國子系統(tǒng)M

17、“«*«“ 看«-«S33BSS 八、a回 工了子子軋宇 入年守示 慝取融查顯返 二二二二一 _ _ _ _ 123456780xaM«x“M«x請選擇菜單號。一G: 8該串逋為:*brI按血畬2】鍵老續(xù),按任左鍵返回主菜飛:數(shù)據(jù)結構Debugsy_4. c*c,該事,直為不“按【Enter】鍵繼操.發(fā)任至犍返回主菜單.串子系統(tǒng)吊回 H4rb子子干了子 入營除入我交示 獸取翦查總顯近 _請選擇菜單號5請諭人在第幾個字符前插入:2請諭入所關插入的字符串:技Rntev核繼而,按仟童健返回主菜八數(shù)據(jù)結構Dahi】gtsy_4請輸入在笫幾個字

18、符前插入;2請輸入所要插入的字符串Shl按tE“C”】鍵繼續(xù),按住意鍵返回主菜單.區(qū) 3一一 一一一 一二一入監(jiān)除人彗示字字王當三吐字 5民子系統(tǒng)請選擇榮盛號0 - 8: 8該串值為 aohibf技Enter鍵繼續(xù),按任意鍵返臼主菜單.|言,C:數(shù)據(jù)結構Dobu八sy_4 oxo,該車值為:ashlbf按【Entez】鍵繼續(xù),按任意鍵返回主英甲.串子主于子子貶了 入接H除入爰不郁W比顯返 _請選擇菜單號。8: 6請瑜人所緊查找的字符串:ah:第一次日現(xiàn)的位置是第2個.fe Fntpp鍵繼續(xù),接任君鍵近叵主算單.按UntM】建聯(lián)續(xù),套任意鍵也回三菜單一請選擇菜單弓8修八7 請輸入第一個串:3府ngWi 請輸入第二個串;hai串子娶茅.串一個串大I£,£主已¥$,“.$叵 千壬二十子”字 入爵女K式示 霍取嚼古燧顯返 -按CEi.lsr解肘塞 按任意便返回主菜單.串sLJJmaa串小串回請進烽

溫馨提示

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

評論

0/150

提交評論