數(shù)據(jù)結(jié)構(gòu)-實(shí)驗(yàn)5-字符串分割處理_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)-實(shí)驗(yàn)5-字符串分割處理_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)-實(shí)驗(yàn)5-字符串分割處理_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)-實(shí)驗(yàn)5-字符串分割處理_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)-實(shí)驗(yàn)5-字符串分割處理_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上1、 實(shí)驗(yàn)?zāi)康模?) 掌握字符串的存儲(chǔ)方法;(2) 掌握英文句子按單詞和標(biāo)點(diǎn)符號(hào)分割的方法;(3) 掌握算術(shù)表達(dá)式按運(yùn)算對(duì)象和運(yùn)算符(只涉及+、-、*、/)分割的方法。2、 實(shí)驗(yàn)內(nèi)容(1) 輸入英文句子,如This is a string 存入數(shù)組:0123Thisisastring0則運(yùn)行程序后分割如下: 0This01is02a03string0(2) 輸入算術(shù)表達(dá)式,如:2*3+6/3. 存入數(shù)組。則運(yùn)行程序后分割如下: 0201*02303+04605/06307.03、 實(shí)驗(yàn)要求(1) 用C(C+)語(yǔ)言完成算法設(shè)計(jì)和程序設(shè)計(jì)。(2) 上機(jī)調(diào)試通過實(shí)驗(yàn)程序。(

2、3) 分別輸入英語(yǔ)句子和算術(shù)表達(dá)式記錄程序運(yùn)行的結(jié)果。(4) 給出具體的算法分析,包括時(shí)間復(fù)雜度和空間復(fù)雜度等。(5) 撰寫實(shí)驗(yàn)報(bào)告(把輸入實(shí)驗(yàn)數(shù)據(jù)及運(yùn)行結(jié)果用抓圖的形式粘貼到實(shí)驗(yàn)報(bào)告上)。4、 實(shí)驗(yàn)步驟與源程序 實(shí)驗(yàn)步驟先從具體的問題中抽象出適當(dāng)?shù)臄?shù)學(xué)模型,然后設(shè)計(jì)出相應(yīng)的算法,其中,需要設(shè)計(jì)一個(gè)主函數(shù)來實(shí)現(xiàn)菜單的輸出,設(shè)計(jì)另外幾個(gè)函數(shù)來求分別實(shí)現(xiàn)空格分割字符串,判斷+、-、*、/、.,分割字符串直到結(jié)束,列菜單等,最后,串接函數(shù),并調(diào)試程序,在調(diào)試的時(shí)候,我先進(jìn)行英文句子的輸入,實(shí)現(xiàn)單詞和標(biāo)點(diǎn)符號(hào)的分割,再進(jìn)行算術(shù)表達(dá)式的輸入,實(shí)現(xiàn)實(shí)現(xiàn)運(yùn)算對(duì)象和運(yùn)算符的分割,多次調(diào)試后,發(fā)現(xiàn)沒有問題,得出

3、實(shí)驗(yàn)結(jié)果,并截圖。 源代碼#include <stdio.h>#include <stdlib.h>#include <string.h>void split1() / 空格分割法 char s1000;char line255255;printf(" 請(qǐng)輸入一組字符串:"); gets(s); int i=0,n=0,k;dok=0;while(sn=' ') n+;for(;sn!='0'&&sn!=' '&&sn!='n'n+,k+) l

4、ineik=sn; lineik='0' i+;while(sn!='0');printf(" 分割后的字符串?dāng)?shù)組:n");int j;for(j=0;j<i;j+) / 輸出字符串?dāng)?shù)組 puts(linej);system("pause");int operators(char op) switch(op) case '+': case '-': case '*': case '/': case '=': case '.'

5、;: return 1; / 是運(yùn)算符 default: return 0; / 不是運(yùn)算符int token(char *str1,char *str2,int pos) int i,j; i=pos; / 從分割位置開始 while(str1i=' ') / 跳過空字符 i+; if(str1i!='0') / 不是字符串結(jié)束 j=0; / 找下一個(gè)空格符 while(str1i!='0' && str1i!=' ') str2j=str1i; / 拷貝非空格符 if(operators(str1i) / 是不

6、是運(yùn)算符if(j>0) / 不是返回之前的字符串 str2j='0' return i;else / 是返回運(yùn)算符 str2j+1='0' return i+1; i+; j+; str2j='0' / 分割字符串結(jié)束字符 return i; / 返回目前位置elsereturn -1; / 分割結(jié)束void split2() / 多分隔符分割法char string255; / 字符串?dāng)?shù)組聲明char token_string255; / 分割字符串聲明int pos; / 分割位置printf("請(qǐng)輸入一組字符串或算術(shù)表達(dá)式:

7、");gets(string); / 讀取字符串pos=0; / 設(shè)置分割位置初值printf("經(jīng)過字符串分割后:n");while(pos=token(string,token_string,pos)!=-1) / 分割字符串直到字符串結(jié)束printf("%sn",token_string); / 輸出各分割字符串system("pause");int sel;void select() / 菜單 system("cls"); / 清屏 printf("n"); printf(&q

8、uot;t 字 符 串 分 割 程 序 n"); printf("t*n"); printf("t* 1.分割字符串分割 *n"); printf("t* 2.算術(shù)表達(dá)式分割 *n"); printf("t* 3.退 出 *n"); printf("t*n"); printf("t 請(qǐng)選擇(1-3):"); scanf("%d",&sel); getchar();void main() for(;) select(); switch(se

9、l) case 1:split1();break;case 2:split2();break;case 3:exit(0);break;default:printf(" 選項(xiàng)不存在,請(qǐng)重新選擇!n");system("pause"); 5、 測(cè)試數(shù)據(jù)與實(shí)驗(yàn)結(jié)果(可以抓圖粘貼)(1)菜單顯示:專心-專注-專業(yè)(2)字符串分割:(3)算術(shù)表達(dá)式分割:6、 結(jié)果分析與實(shí)驗(yàn)體會(huì)本次實(shí)驗(yàn)是參考了范例程序,經(jīng)過自己的改寫,從而實(shí)現(xiàn)要求。先做簡(jiǎn)單的輸出,一步步的再做其它格式的設(shè)置。其中,范例程序中用到了“system("pause");”和“system("cls");”語(yǔ)句,實(shí)現(xiàn)提示繼續(xù)操作與清屏,尤其是在清屏的時(shí)候,我覺得非常好用,往常稍大的程序需要反復(fù)循環(huán)操作和調(diào)試,界面看起來就非常的繁瑣,有了這條語(yǔ)句,就可以輕松實(shí)現(xiàn)操作界面的整潔化了。還有,字符串的輸入,注意gets和scanf的區(qū)別,在實(shí)驗(yàn)的過程中,我加深了對(duì)字符串各種操作的理解,覺得串這種數(shù)據(jù)結(jié)構(gòu)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論