實驗四:文本編輯_第1頁
實驗四:文本編輯_第2頁
實驗四:文本編輯_第3頁
實驗四:文本編輯_第4頁
實驗四:文本編輯_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗四:文本編輯一問題描述要求建立一個文本文件,每個單詞子串不包含空格且不跨行,單詞子串由字符序列構成,且區(qū)分大小寫;統計給定單詞子串在文本文件中出現的總次數;檢索輸出某個單詞子串出現在文本中的行號、在該行中出現的次數以及位置。二輸入與輸出輸入:從鍵盤循環(huán)輸入字符串,創(chuàng)建到文本文件中從鍵盤輸入要計數的單詞子串以及要定位的單詞子串輸出:將統計結果以及定位的結果輸出到屏幕三需求分析.定義字符串的存儲結構;.編寫主函數、菜單函數,確定函數之間的接口;.編寫創(chuàng)建文件函數、單詞匹配函數、單詞計數函數、單詞定位函數。使用多套數據,進行系統調試;開發(fā)工具與環(huán)境硬件設備:微型計算機系統軟件環(huán)境:操作系統Win

2、dows,開發(fā)工具devc+概要設計數據結構定義#definemaxsize10000typedefunsignedcharsstringmaxsize;各函數模塊voidwordcount();/操作結果:出現的總次數voidcreattextfile();/統計單詞,操作結果:創(chuàng)建文本文件intchoose();/操作結果:輸入選項intindex_BF(sstrings,sstringt,intpos);/操作結果:串匹配,返回匹配的位置voidstrfind();/操作結果:定位單詞出現在某行,某列以及次數六詳細設計#include/萬能頭文件usingnamespacestd;#de

3、finemaxsize10000typedefcharsstringmaxsize;/字符串數組voidwordcount();/單詞統計函數voidcreattextfile();/創(chuàng)建文件函數intchoose();intindex_BF(sstrings,sstringt,intpos);/匹配函數voidstrfind();/單詞定位函數intmain()intchoice=0;/選擇鍵/選擇框printf(n);printf(1.文本文件的建立n);printf(2.單詞的計數n);printf(3.單詞的定位n);printf(4.退出n);printf(n);while(1)/調

4、用選擇函數來獲取選擇數字choice=choose();switch(choice)creattextfile();break;wordcount();break;strfind();break;return0;return0;/選擇功能所對應的數字intchoose()intchoice;printf(輸入選擇:n);scanf(%d,&choice);returnchoice;voidcreattextfile()文件名filenameyn表示是否繼續(xù)輸入charfilename20,yn=n;字符串數組strsstringstr;/文件類型指針fpFILE*fp;printf(請輸入文件

5、名:n);scanf(%s,filename);getchar();/w表示以寫模式打開文件,如果fp=NULL表示打開文件失敗if(fp=fopen(filename,w)=NULL)printf(cannotopenn);exit(0);/yn=n表示繼續(xù)輸入while(yn=n)printf(請輸入一行字符串:n);gets(str);/輸入字符串fputs(str,fp);將字符串寫入文件fpfputc(n,fp);/行末寫換行符printf(是否結束輸入?丫orn:n);scanf(%c,&yn);getchar();fclose(fp);/關閉文件printf(文件建立結束n);/

6、計數函數voidwordcount()FILE*fp;sstrings,t;charfilename10;intcount=0,j,k,lent;printf(請輸入要打開的文件名:也);scanf(%s,filename);if(fp=fopen(filename,r)=NULL)/打開文件成功printf(cannotopenn);exit(0);printf(請輸入需要統計出現次數的單詞子串:n);scanf(%s,t);/feof表示文件的結束,循環(huán)讀入文件每一行count=0;/count初始化while(!feof(fp)strcpy(s,);fgets(s,1000,fp);k=

7、0;/k初始化while(k=0)count+;k+;printf(出現了%d次n,count);/串匹配函數intindex_BF(sstrings,sstringt,intpos)inti,j,m,n;m=strlen(s);/m表示s的串長度n=strlen(t);/n表示t的串長度if(posm)這種情況不可能匹配,pos非負,pos+n一定小于總長return(-1);i=pos;j=0;while(im&j=n)表示n個字符全部匹配return(i-n);else/表示沒有完全匹配return(-1);/串定位函數voidstrfind()FILE*fp;文件指針fpsstring

8、s,t;charfilename10;inti=0,j,k,lent,pos50,line=0,m;/局部變量定義區(qū)printf(請輸入要打開的文件名:n);scanf(%s,filename);if(fp=fopen(filename,r)=NULL)/打開文件成功printf(cannotopenn);exit(0);printf(請輸入要定位的單詞子串:n);scanf(%s,t);lent=strlen(t);字符串t的長度while(!feof(fp)/循環(huán)讀入strcpy(s,);fgets(s,1000,fp);從fp文件中讀入一行數據line+;/行計數器累加,行數k=0;i=0;/k,i初始化while(kstrlen(s)-1)/逐個匹配,直到最后一個字符j=index_BF(s,t,k);/調用定位函數if(j0)printf(在第4行,出現了4次,位置分別是:,line,i);for(m=1;mct請輸入需要統計出現次數的單詞子串,many鍛工移輸A選擇請輸入要打開的文件名,test-txt請輸入要定位的單詞子串I出現了3次,位置分別是:列28列如列-.U-惻,ProcessexitedafterW.1VB?secondswithtet

溫馨提示

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

評論

0/150

提交評論