版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗三 串基本操作的編程實現(xiàn)【實驗?zāi)康摹績?nèi)容:串基本操作的編程實現(xiàn)要求:串基本操作的編程實現(xiàn)( 2 學(xué)時,驗證型),掌握串的建立、遍歷、插入、刪除等基本 操作的編程實現(xiàn),也可以進一步編程實現(xiàn)查找、合并、剪裁等操作,存儲結(jié)構(gòu)可以在順序結(jié) 構(gòu)或鏈接結(jié)構(gòu)、 索引結(jié)構(gòu)中任選, 也可以全部實現(xiàn)。 也鼓勵學(xué)生利用基本操作進行一些應(yīng)用 的程序設(shè)計?!緦嶒炐再|(zhì)】驗證性實驗(學(xué)時數(shù): 2H )【實驗內(nèi)容】字符串用常規(guī)的順序存儲法來存儲,實現(xiàn)常用的功能。 自己編程模式:開發(fā)一個程序,用來統(tǒng)計文件中各種信息,如字符個數(shù),行數(shù)等。 修改程序模式:將下面程序空白的地方填空。程序檢查模式:將本文件夾中的程序運行后總結(jié)相關(guān)
2、功能?!舅伎紗栴}】1. 字符串的順序存儲和鏈表存儲的差異?C語言中是如何實現(xiàn)字符串的?2. 在字符串處理方面主要有什么操作?3. 字符串的操作的主要特點是什么?4. 舉出幾個字符串的應(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; / 長度;string:string()str=new charmaxsize;/ 申請數(shù)組空間string:string()returninfo string:strcreate()int i=-1,ch;cout<<" 請輸入要創(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)插入的字符串在原串末尾時,就相當(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 用來確定比較時原串 的移動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. 求串長度 "<<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<<" 請輸入選擇 :&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<<" 輸入錯誤 !"<<endl;elsereturnvalue=newstring.strcreate(); if(returnvalue=success)cout<<" 創(chuàng)建成功 !"<<endl;flag=1;break;case '2':if(flag=0)cout<<" 請先建立串 !"<<en
13、dl;elsenewstring.strtraverse();break;case '3':if(flag=0)cout<<" 請先建立串 !"<<endl;elsenewstring.strtraverse();cout<<" 請輸入要修改的初始位置 :"cin>>beginposition;cout<<" 請輸入要修改的終止位置 :" cin>>endposition;cout<<" 請輸入修改后的字符串 :"c
14、in>>newstr;returnvalue=newstring.strmodify(beginposition,endposition,newstr);if(returnvalue=success)cout<<" 修改成功 !"<<endl;newstring.strtraverse();if(returnvalue=overflow)cout<<"字符串的最大長度為 "<<maxsize<<endl;cout<<"發(fā)生溢出,操作失敗 !"<&
15、lt;endl;if(returnvalue=range_error)cout<<" 位置錯誤 ,操作失敗 !"<<endl;if(returnvalue=empty)cout<<" 字符串為空 ,操作失敗 !"<<endl;break;case '4':if(flag=0)cout<<" 請先建立串 !"<<endl;elsenewstring.strtraverse();cout<<" 請輸入要插入的位置 :"c
16、in>>position;cout<<" 請輸入要插入的字符串cin>>newstr;length=strlen(newstr);returnvalue=newstring.strinsert(position,newstr,length);if(returnvalue=success)cout<<" 插入成功 !"<<endl;newstring.strtraverse();if(returnvalue=overflow)cout<<" 字符串的最大長度為 "<&l
17、t;maxsize<<endl;cout<<" 發(fā)生溢出,操作失敗 !"<<endl;if(returnvalue=range_error)cout<<" 位置錯誤,操作失敗 !"<<endl;break;case '5':if(flag=0)cout<<" 請先建立串 !"<<endl;elsenewstring.strtraverse();cout<<" 請輸入要刪除的初始位置 :"cin>&g
18、t;beginposition;cout<<" 請輸入要刪除的終止位置 :"cin>>endposition;returnvalue=newstring.strdelete(beginposition,endposition);if(returnvalue=success)cout<<" 刪除成功 !"<<endl;newstring.strtraverse();if(returnvalue=range_error)cout<<" 位置錯誤,操作失敗 !"<<en
19、dl;if(returnvalue=empty)cout<<" 字符串為空 ,操作失敗 !"<<endl;break;case '6':if(flag=0)cout<<" 請先建立串 !"<<endl;elsenewstring.strtraverse();cout<<" 請輸入要查找的字符串 :"cin>>newstr;position=newstring.strsearch(newstr);if(position>0)cout<<"已找到
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版臨時司機薪酬福利與勞動關(guān)系合同4篇
- 2025年臨時用工人員培訓(xùn)與晉升合同4篇
- 二零二五版新能源汽車關(guān)鍵部件采購合同標(biāo)準(zhǔn)范本3篇
- 二零二五年泵車租賃與施工監(jiān)理合同匯編3篇
- 二零二五年度路燈照明設(shè)施節(jié)能技術(shù)研發(fā)合同4篇
- 二零二五年度高端個人珠寶質(zhì)押借款合同范本正規(guī)范本3篇
- 二零二五年度文化旅游項目尾款結(jié)算與產(chǎn)業(yè)發(fā)展合同3篇
- 二零二五版房地產(chǎn)開發(fā)前期土地獲取及政策支持合同3篇
- 二零二五年度離婚協(xié)議及子女教育金及生活費支付合同3篇
- 2025年林業(yè)生態(tài)修復(fù)項目承包合同范本4篇
- 心功能分級及護理
- DLT 572-2021 電力變壓器運行規(guī)程
- 重慶育才中學(xué)2025屆化學(xué)九上期末教學(xué)質(zhì)量檢測試題含解析
- 成都市2022級(2025屆)高中畢業(yè)班摸底測試(零診)數(shù)學(xué)試卷(含答案)
- 【云南省中藥材出口現(xiàn)狀、問題及對策11000字(論文)】
- 服裝板房管理制度
- 河北省興隆縣盛嘉恒信礦業(yè)有限公司李杖子硅石礦礦山地質(zhì)環(huán)境保護與治理恢復(fù)方案
- 第七章力與運動第八章壓強第九章浮力綜合檢測題(一)-2023-2024學(xué)年滬科版物理八年級下學(xué)期
- 醫(yī)療機構(gòu)診療科目名錄(2022含注釋)
- 微視頻基地策劃方案
- 光伏項目質(zhì)量評估報告
評論
0/150
提交評論