- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C之字串型态阵列
Mr LIN Mr Chou Mr Huan 第八章 陣列(array)與字串(string) 8-1 一維陣列 一維陣列就如同一部火車,陣列中的每個元素(位置)就好像是火車的車廂。 陣列變數宣告與一般變數宣告一樣,如下所示: int score[6]; float temp[7]; char name[12]; 陣列的初值設定: Int day[12]={2,3,4,10,23,5,7,4,1,8,6,9}; Int day[12]={10}; Int day[]={2,3,4,10,23,5,7,41,8,6,9}; 一維陣列可應用在資料排序與搜尋 ? 共有6個元素的整數型變數,score[0]~score[5] ? day[0]=2, day[1]=3, … day[11]=9 ? 全部元素的值都指定為10 : day[0]=10, … day[11]=10 ? 陣列未指定元素大小, 由資料數決定元素數 ? 共有7個元素的浮點數型變數,temp[0]~temp[6] ? 共有12個元素的字元型變數,name[0]~name[11] 8-2 二維以上之多維陣列 二維陣列的宣告範例: int data[3][4]; float score[2][3]; 二維陣列的初值設定範例: Int sale[2][4]={{1,3,4,6},{5,7,9,8}}; 二維以上之多維陣列容許列的長度可省略: Int abc[][4]={{2,3,4,5},{2,4,6,8},{3,6,9,1}}; 三維陣列的宣告範例: Int abc[3][2][4]; ? 宣告3列4行共12個位置的整數型二維陣列變數 ? 宣告2列3行共6個位置的浮點數型二維陣列變數 ? sale[1,0] ? sale[0,2] ? 宣告4面3列5行,共60個位置的整數型三維陣列變數 ? 變成3列4行 陣列變數之實體觀念 A A[4] A[4,3,4] A[3,4,3,4] A[0,3,2,3] A[2,3,2,3] A[1,3,2,3] A[0] A[1] A[2] A[3] A[0,0,0] A[0,0,1] A[0,0,2] A[0,0,3] A[0,1,0] A[0,1,1] A[0,1,2] A[0,1,3] A[0,2,0] A[0,2,1] A[0,2,2] A[0,2,3] A[0,0] A[0,1] A[0,2] A[0,3] A[4,4] A[1,0] A[2,0] A[3,0] A[1,1] A[2,1] A[3,1] A[1,2] A[2,2] A[3,2] A[1,3] A[2,3] A[3,3] 單一變數 一維陣列變數 二維陣列變數 三維陣列變數 四維陣列變數 ? A[2,0,2] 8-3 傳遞陣列給函數 在C++中呼叫函數時,若無特別指明,都是以傳值呼叫(Call by value)。(P. 8-22 prog8_9) 若要顯示變數的位址,則在變數名稱前加上位址運算子”” 在宣告原型函數時,其資料陣列變數不一定要與函數定義中的陣列變數名稱一樣。 程式在傳遞陣列至函數時是指向陣列位址的指標,而非傳遞整個陣列。 若是一維陣列傳遞,函數定義接收參數變數時,則無須在中括號內填入元素個數。(P. 8-23 prog8_10) 若是多維陣列傳遞,在函數的宣告與定義中陣列變數的列可不填入元素個數,其餘不能省略;同理,在宣告原型函數時,其資料陣列變數不一定要與函數定義中的陣列變數名稱一樣。 8-4 字元陣列(C型態字串) C語言沒有字串的資料型態,所以,C語言處理字串是利用字元陣列,此稱為C型態字串。宣告方式如下所示: char 字元陣列名稱[字串長度] char 字元陣列名稱[字串長度]=字串常數 “This is a house!”; “12+36=“ 稱為字串常數 C++可以使用C的字元陣列 遇到字元用單引號(‘)包起來;遇到字串用雙引號(“)包起來,字串需要在最後面加上字串結束字元”\0”,所以宣告字元陣列變數時要多預留一個byte存放”\0”。 利用cin輸入字串資料時,空白或Enter都代表字串的結束 利用cin.getline()可以弭補cin的弱點,輸入完畢,C++會自動將\n加到字串的後面。 cin 與cin.getline()混合使用時的隱藏問題(P.8-32 prog8_14) 利用cin.get()緊跟在cin下一行來解決修正P.8-32 prog8_14的問題 8-5 字串類別(C++的型態字串) C++除了可以使用C型態字串之外,亦可以使用字串類別(class),此稱為C++型態字串,需要預先include字串的標頭檔(string)。 但是在C語言中不可以使用C++的字串類別 宣告格式如下: s
文档评论(0)