




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上1、 實驗目的(1) 掌握字符串的存儲方法;(2) 掌握英文句子按單詞和標點符號分割的方法;(3) 掌握算術表達式按運算對象和運算符(只涉及+、-、*、/)分割的方法。2、 實驗內容(1) 輸入英文句子,如This is a string 存入數組:0123Thisisastring0則運行程序后分割如下: 0This01is02a03string0(2) 輸入算術表達式,如:2*3+6/3. 存入數組。則運行程序后分割如下: 0201*02303+04605/06307.03、 實驗要求(1) 用C(C+)語言完成算法設計和程序設計。(2) 上機調試通過實驗程序。(
2、3) 分別輸入英語句子和算術表達式記錄程序運行的結果。(4) 給出具體的算法分析,包括時間復雜度和空間復雜度等。(5) 撰寫實驗報告(把輸入實驗數據及運行結果用抓圖的形式粘貼到實驗報告上)。4、 實驗步驟與源程序 實驗步驟先從具體的問題中抽象出適當的數學模型,然后設計出相應的算法,其中,需要設計一個主函數來實現菜單的輸出,設計另外幾個函數來求分別實現空格分割字符串,判斷+、-、*、/、.,分割字符串直到結束,列菜單等,最后,串接函數,并調試程序,在調試的時候,我先進行英文句子的輸入,實現單詞和標點符號的分割,再進行算術表達式的輸入,實現實現運算對象和運算符的分割,多次調試后,發現沒有問題,得出
3、實驗結果,并截圖。 源代碼#include <stdio.h>#include <stdlib.h>#include <string.h>void split1() / 空格分割法 char s1000;char line255255;printf(" 請輸入一組字符串:"); 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(" 分割后的字符串數組:n");int j;for(j=0;j<i;j+) / 輸出字符串數組 puts(linej);system("pause");int operators(char op) switch(op) case '+': case '-': case '*': case '/': case '=': case '.'
5、;: return 1; / 是運算符 default: return 0; / 不是運算符int token(char *str1,char *str2,int pos) int i,j; i=pos; / 從分割位置開始 while(str1i=' ') / 跳過空字符 i+; if(str1i!='0') / 不是字符串結束 j=0; / 找下一個空格符 while(str1i!='0' && str1i!=' ') str2j=str1i; / 拷貝非空格符 if(operators(str1i) / 是不
6、是運算符if(j>0) / 不是返回之前的字符串 str2j='0' return i;else / 是返回運算符 str2j+1='0' return i+1; i+; j+; str2j='0' / 分割字符串結束字符 return i; / 返回目前位置elsereturn -1; / 分割結束void split2() / 多分隔符分割法char string255; / 字符串數組聲明char token_string255; / 分割字符串聲明int pos; / 分割位置printf("請輸入一組字符串或算術表達式:
7、");gets(string); / 讀取字符串pos=0; / 設置分割位置初值printf("經過字符串分割后:n");while(pos=token(string,token_string,pos)!=-1) / 分割字符串直到字符串結束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.算術表達式分割 *n"); printf("t* 3.退 出 *n"); printf("t*n"); printf("t 請選擇(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(" 選項不存在,請重新選擇!n");system("pause"); 5、 測試數據與實驗結果(可以抓圖粘貼)(1)菜單顯示:專心-專注-專業(2)字符串分割:(3)算術表達式分割:6、 結果分析與實驗體會本次實驗是參考了范例程序,經過自己的改寫,從而實現要求。先做簡單的輸出,一步步的再做其它格式的設置。其中,范例程序中用到了“system("pause");”和“system("cls");”語句,實現提示繼續操作與清屏,尤其是在清屏的時候,我覺得非常好用,往常稍大的程序需要反復循環操作和調試,界面看起來就非常的繁瑣,有了這條語句,就可以輕松實現操作界面的整潔化了。還有,字符串的輸入,注意gets和scanf的區別,在實驗的過程中,我加深了對字符串各種操作的理解,覺得串這種數據結構
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紡織協會面試題及答案
- 色彩助教面試題及答案
- 羊肉燒烤測試題及答案
- 南京鼓樓期中考試題及答案
- 2024-2025學年廣東省陽江市田家炳學校九年級11月月考歷史試卷
- 2024-2025學年山西省上學期九年級大聯考(一)歷史試卷
- 2024-2025學年山東省濱州市開發區樹人學校七年級歷史上學期第一次質量檢測試卷(B卷)
- 2025-2030年中國水果電商行業競爭格局研究報告
- 口腔護理課件app
- 2025-2030年中國塑料膠四乙氧基硅烷境外融資報告
- 新《勞動合同法》知識學習考試題庫200題(含答案)
- 實驗活動5 不同價態含硫物質的轉化 教學設計 高一下學期化學人教版(2019)必修第二冊
- 工商局股權轉讓協議范本(2024版)
- 四川省巴中市2023-2024學年七年級下學期期末生物試題
- 國家開放大學電大《11846商法》期末終考題庫及答案
- 2024成都語文中考試題研究備考 第五部分 古詩文閱讀 教材文言文考點講解-寫景篇【課件】
- 涉企行政執法自查報告市場監管
- 《化工和危險化學品生產經營單位重大生產安全事故隱患判定標準(試行)》解讀課件
- 人工造雪技術培訓課件
- 北京市海淀區2022-2023學年三年級下學期數學期末考試試卷
- 根據中國非遺書法從保護的角度討論中國書法
評論
0/150
提交評論