版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)三 串基本操作的編程實(shí)現(xiàn)【實(shí)驗(yàn)?zāi)康摹績(jī)?nèi)容:串基本操作的編程實(shí)現(xiàn)要求:串基本操作的編程實(shí)現(xiàn)( 2 學(xué)時(shí),驗(yàn)證型),掌握串的建立、遍歷、插入、刪除等基本 操作的編程實(shí)現(xiàn),也可以進(jìn)一步編程實(shí)現(xiàn)查找、合并、剪裁等操作,存儲(chǔ)結(jié)構(gòu)可以在順序結(jié) 構(gòu)或鏈接結(jié)構(gòu)、 索引結(jié)構(gòu)中任選, 也可以全部實(shí)現(xiàn)。 也鼓勵(lì)學(xué)生利用基本操作進(jìn)行一些應(yīng)用 的程序設(shè)計(jì)?!緦?shí)驗(yàn)性質(zhì)】驗(yàn)證性實(shí)驗(yàn)(學(xué)時(shí)數(shù): 2H )【實(shí)驗(yàn)內(nèi)容】字符串用常規(guī)的順序存儲(chǔ)法來存儲(chǔ),實(shí)現(xiàn)常用的功能。 自己編程模式:開發(fā)一個(gè)程序,用來統(tǒng)計(jì)文件中各種信息,如字符個(gè)數(shù),行數(shù)等。 修改程序模式:將下面程序空白的地方填空。程序檢查模式:將本文件夾中的程序運(yùn)行后總結(jié)相關(guān)
2、功能?!舅伎紗栴}】1. 字符串的順序存儲(chǔ)和鏈表存儲(chǔ)的差異?C語言中是如何實(shí)現(xiàn)字符串的?2. 在字符串處理方面主要有什么操作?3. 字符串的操作的主要特點(diǎn)是什么?4. 舉出幾個(gè)字符串的應(yīng)用范例?【參考代碼】/ 功能:順序串的基本基本功能#include <iostream.h>#include <conio.h>#include <windows.h>#include <iomanip.h>#define maxsize 30/順序串的總空間大小enum returninfosuccess,fail,overflow,underflow,range
3、_error,empty;/清單class stringpublic:string();/ 構(gòu)造函數(shù)string();/ 析構(gòu)函數(shù)returninfo strcreate(); /創(chuàng)建串returninfo strinsert(int position,char newstr,int str_length); /插入returninfo strdelete(int beginposition,int endposition); /刪除returninfo strmodify(int beginposition,int endposition,char newstr); /int strsear
4、ch(char newstr); / 查找void strtraverse(); / 遍歷定義返回信息修改private:char *str; / 串int length; / 長(zhǎng)度;string:string()str=new charmaxsize;/ 申請(qǐng)數(shù)組空間string:string()returninfo string:strcreate()int i=-1,ch;cout<<" 請(qǐng)輸入要?jiǎng)?chuàng)建的字符串 (ctrl+z 結(jié)束輸入 ):"<<endl;while(ch=getch()!=26)cout<<char(ch);i+;
5、if(ch!=13)stri=char(ch);else i=i-1;cout.flush();/ 為了每次輸入后可以立即顯示所輸入的字符,則先清除緩沖區(qū)length=i+1;cout<<endl;return success;returninfo string:strinsert(int position,char newstr,int str_length)/ 當(dāng)插入的字符串在原串末尾時(shí),就相當(dāng)于合并return success;returninfo string:strdelete(intbeginposition,int endposition)return success
6、;returninfo string:strmodify(int beginposition,int endposition,char newstr) return success;int i=0,str_length,position=0,count=0; / 是否相等標(biāo)志 ,count 用來確定比較時(shí)原串 的移動(dòng)if(length=0)return -1;str_length=strlen(newstr);for(;i<length&&count<str_length;i+)if(stri=newstrcount) position=i-str_length+2
7、;count+;continue; elseif(position=1)i=i-count;count=0;position=0;return position;void string:strtraverse()int i,j;if(length>0)cout<<" 位置 : "for(i=0;i<=length/10;i+)cout<<"|-"<<i<<"|"cout<<endl;cout<<" 位置 : " for(i=0;i&
8、lt;=length/10;i+)for(j=0;j<=9;j+)cout<<j;cout<<endl;cout<<" 當(dāng)前串 : "for(i=0;i<length;i+) cout<<stri;cout<<endl;elsecout<<" 字符串為空 !"<<endl;return length;void menu(void)cout<<" 順序串基本功能菜單 "<<endl;)"<<end
9、l;cout<<"="<<endl;cout<<"1. 建立順序串(僅限單行的字符串,建議不用漢字。cout<<"2. 顯示串 "<<endl;cout<<"3. 修改串 "<<endl;cout<<"4. 插入串 "<<endl;cout<<"5. 刪除串 "<<endl;cout<<"6. 查找串 "<<en
10、dl;cout<<"7. 求串長(zhǎng)度 "<<endl;cout<<"8. 結(jié)束程序 "<<endl;cout<<"="<<endl;int main()int flag=0,returnvalue,position,beginposition,endposition,length;char choice,choose,newstrmaxsize;string newstring;menu();while(1)cout<<" 請(qǐng)輸入選擇 :&qu
11、ot;cin>>choice;switch(choice)case '1':if(flag)cout<<" 數(shù)據(jù)已存在,是否覆蓋 ?(y/n)"cin>>choose;if(choose='N'|choose='n')cout<<" 數(shù)據(jù)沒有發(fā)生更改 !"<<endl;break;if(choose='Y'|choose='y')returnvalue=newstring.strcreate();if(returnv
12、alue=success)cout<<" 創(chuàng)建成功 !"<<endl;flag=1;elsecout<<" 輸入錯(cuò)誤 !"<<endl;elsereturnvalue=newstring.strcreate(); if(returnvalue=success)cout<<" 創(chuàng)建成功 !"<<endl;flag=1;break;case '2':if(flag=0)cout<<" 請(qǐng)先建立串 !"<<en
13、dl;elsenewstring.strtraverse();break;case '3':if(flag=0)cout<<" 請(qǐng)先建立串 !"<<endl;elsenewstring.strtraverse();cout<<" 請(qǐng)輸入要修改的初始位置 :"cin>>beginposition;cout<<" 請(qǐng)輸入要修改的終止位置 :" cin>>endposition;cout<<" 請(qǐng)輸入修改后的字符串 :"c
14、in>>newstr;returnvalue=newstring.strmodify(beginposition,endposition,newstr);if(returnvalue=success)cout<<" 修改成功 !"<<endl;newstring.strtraverse();if(returnvalue=overflow)cout<<"字符串的最大長(zhǎng)度為 "<<maxsize<<endl;cout<<"發(fā)生溢出,操作失敗 !"<&
15、lt;endl;if(returnvalue=range_error)cout<<" 位置錯(cuò)誤 ,操作失敗 !"<<endl;if(returnvalue=empty)cout<<" 字符串為空 ,操作失敗 !"<<endl;break;case '4':if(flag=0)cout<<" 請(qǐng)先建立串 !"<<endl;elsenewstring.strtraverse();cout<<" 請(qǐng)輸入要插入的位置 :"c
16、in>>position;cout<<" 請(qǐng)輸入要插入的字符串cin>>newstr;length=strlen(newstr);returnvalue=newstring.strinsert(position,newstr,length);if(returnvalue=success)cout<<" 插入成功 !"<<endl;newstring.strtraverse();if(returnvalue=overflow)cout<<" 字符串的最大長(zhǎng)度為 "<&l
17、t;maxsize<<endl;cout<<" 發(fā)生溢出,操作失敗 !"<<endl;if(returnvalue=range_error)cout<<" 位置錯(cuò)誤,操作失敗 !"<<endl;break;case '5':if(flag=0)cout<<" 請(qǐng)先建立串 !"<<endl;elsenewstring.strtraverse();cout<<" 請(qǐng)輸入要?jiǎng)h除的初始位置 :"cin>&g
18、t;beginposition;cout<<" 請(qǐng)輸入要?jiǎng)h除的終止位置 :"cin>>endposition;returnvalue=newstring.strdelete(beginposition,endposition);if(returnvalue=success)cout<<" 刪除成功 !"<<endl;newstring.strtraverse();if(returnvalue=range_error)cout<<" 位置錯(cuò)誤,操作失敗 !"<<en
19、dl;if(returnvalue=empty)cout<<" 字符串為空 ,操作失敗 !"<<endl;break;case '6':if(flag=0)cout<<" 請(qǐng)先建立串 !"<<endl;elsenewstring.strtraverse();cout<<" 請(qǐng)輸入要查找的字符串 :"cin>>newstr;position=newstring.strsearch(newstr);if(position>0)cout<<"已找到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧鐵道職業(yè)技術(shù)學(xué)院《規(guī)則與裁判法》2023-2024學(xué)年第一學(xué)期期末試卷
- 蘭州城市學(xué)院《建筑設(shè)備施工安裝技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西電力職業(yè)技術(shù)學(xué)院《智慧工地》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南第一師范學(xué)院《篆刻3》2023-2024學(xué)年第一學(xué)期期末試卷
- 黑龍江生態(tài)工程職業(yè)學(xué)院《風(fēng)景建筑速寫》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶護(hù)理職業(yè)學(xué)院《民事訴訟法學(xué)(含模擬法庭)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中央財(cái)經(jīng)大學(xué)《人工智能專業(yè)前沿》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州軟件職業(yè)技術(shù)學(xué)院《英語模擬課堂》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)2024年體育發(fā)展年度報(bào)告
- 浙江電力職業(yè)技術(shù)學(xué)院《生物信息學(xué)前沿技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 關(guān)于斗爭(zhēng)精神不足的整改措施【三篇】
- 初三物理寒假課程
- 如何預(yù)防心腦血管病
- LY/T 3321-2022草原生態(tài)價(jià)值評(píng)估技術(shù)規(guī)范
- 《新媒體文案創(chuàng)作與傳播》期末試卷1
- 人感染H7N9禽流感流行病學(xué)調(diào)查和處置
- 高等院校內(nèi)部控制多模型決策方法研究
- 木棧道專項(xiàng)施工方案(同名3601)
- GB/T 11957-2001煤中腐植酸產(chǎn)率測(cè)定方法
- 浙江省普通高中通用技術(shù)學(xué)科教學(xué)指導(dǎo)意見
- HRB500級(jí)鋼筋施工要點(diǎn)ppt課件
評(píng)論
0/150
提交評(píng)論