|09 陣列
9.1 陣列 |一維陣列架構 9.1.1 關於陣列 陣列是數個相同型態的資料集合 | 使用一維陣列 >>
|使用一維陣列 宣告 陣列長度 索引 儲存元素 9.1 陣列 9.1.1 關於陣列 << 一維陣列架構 9.1 陣列 |使用一維陣列 9.1.1 關於陣列 宣告 陣列長度 索引 儲存元素 << 一維陣列架構 宣告陣列 >>
9.1 陣列 |宣告陣列 9.1.1 關於陣列 int x[6] ; << 使用一維陣列 存取陣列元素 >>
|存取陣列元素 150 x[3]=150 ; i=x[3] ; 150 [0] [1] [2] [3] [4] [5] 9.1 陣列 9.1 陣列 |存取陣列元素 9.1.1 關於陣列 x[3]=150 ; i=x[3] ; 150 [0] [1] [2] [3] [4] [5] 150 2 1 << 宣告陣列 存取陣列元素 >>
9.1 陣列 |存取陣列元素 9.1.1 關於陣列 << 存取陣列元素 範例:示範陣列 >>
|範例:示範陣列 [0] 100 [1] 200 [2] 300 [3] 400 [4] 500 [5] 600 9.1 陣列 |範例:示範陣列 9.1.1 關於陣列 100,200,300,400,500,600 8 7 6 5 4 [0] 100 [1] 200 [2] 300 [3] 400 [4] 500 [5] 600 3 2 1 > << 存取陣列元素 特定型態的陣列宣告 >>
|特定型態的陣列宣告 double ds[6] ; 宣告一個 double 型態的陣列 ds 可以儲存 6 個 double 型態的數值 9.1 陣列 |特定型態的陣列宣告 9.1.1 關於陣列 double ds[6] ; 宣告一個 double 型態的陣列 ds 可以儲存 6 個 double 型態的數值 << 範例:示範陣列 陣列索引值 >>
|陣列索引值 mybArray[k] k 是一個 int 型態的變數。 k 被用來做為索引值。 9.1 陣列 9.1.2 陣列的變數存取 9.1 陣列 |陣列索引值 9.1.2 陣列的變數存取 mybArray[k] k 是一個 int 型態的變數。 k 被用來做為索引值。 << 特定型態的陣列宣告 範例:陣列索引存取 >>
|範例:陣列索引存取 3 4 5 [0] 100 [1] 200 [2] 300 [3] 400 [4] 500 [5] 600 9.1 陣列 |範例:陣列索引存取 9.1.2 陣列的變數存取 3 4 5 [0] 100 [1] 200 [2] 300 [3] 400 [4] 500 [5] 600 3 2 1 << 陣列索引值 範例:陣列的變數設值 >>
|範例:陣列的變數設值 200 設定第 2 個陣列元素值: x[0]:100,x[1]:200 100 200 [0] [1] 9.1 陣列 9.1 陣列 |範例:陣列的變數設值 9.1.2 陣列的變數存取 [0] [1] 100 4 設定第 2 個陣列元素值: x[0]:100,x[1]:200 200 200 3 2 1 << 範例:陣列索引存取 sizeof() >>
|sizeof() int size = sizeof(x) ; x 是一個陣列。 變數 size 儲存 sizeof() 回傳的整數。 9.1 陣列 |sizeof() 9.1.3 陣列長度 int size = sizeof(x) ; x 是一個陣列。 變數 size 儲存 sizeof() 回傳的整數。 回傳值代表陣列 x 所能儲存的位元數目。 << 範例:陣列的變數設值 範例:陣列的大小 >>
|範例:陣列的大小 x 陣列所能儲存的位元:24 x 陣列所能儲存的 int 數量:6 9.1 陣列 9.1.3 陣列長度 3 2 1 9.1 陣列 |範例:陣列的大小 9.1.3 陣列長度 x 陣列所能儲存的位元:24 x 陣列所能儲存的 int 數量:6 3 2 1 << sizeof() 範例:陣列存取型態錯誤 >>
|範例:陣列存取型態錯誤 4198928,100,456,37814176 9.1 陣列 9.1.4 使用陣列的錯誤 2 1 9.1 陣列 |範例:陣列存取型態錯誤 9.1.4 使用陣列的錯誤 4198928,100,456,37814176 2 1 << 範例:陣列的大小 索引超出範圍的錯誤 >>
|索引超出範圍的錯誤 001 int x[6] ; 002 x[0] = 100 ; 003 x[1] = 2000 ; 9.1 陣列 |索引超出範圍的錯誤 9.1.4 使用陣列的錯誤 001 int x[6] ; 002 x[0] = 100 ; 003 x[1] = 2000 ; 004 x[6] = 3000 ; 索引值 0~5 索引值超出範圍邊界值 5 的錯誤 #define 指令預先定義 3 2 1 << 範例:陣列存取型態錯誤 範例:定義陣列長度 >>
9.1 陣列 |範例:定義陣列長度 9.1.4 使用陣列的錯誤 << 索引超出範圍的錯誤 初始化陣列 >>
|初始化陣列 int x[3] ={10 ,20 ,50 }; int y[]={100,200,500} ; 9.1 陣列 |初始化陣列 9.1.5 初始化陣列 int x[3] ={10 ,20 ,50 }; 建立一個儲存 3 個元素的 int 型態陣列物件。 將 3 個整數值直接儲存至陣列。 int y[]={100,200,500} ; 宣告的陣列會根據指定的初始化內容,自行定義。 y 是一個長度等於 3 的陣列。 2 1 << 範例:定義陣列長度 範例:陣列的初始化 >>
|範例:陣列的初始化 x:10,20,50 y:100,200,500 9.1 陣列 9.1.5 初始化陣列 3 2 1 9.1 陣列 |範例:陣列的初始化 9.1.5 初始化陣列 x:10,20,50 y:100,200,500 3 2 1 << 初始化陣列 範例:陣列的初始化 >>
|範例:陣列的初始化 warning: excess elements in array initializer x:10,0,0 9.1 陣列 |範例:陣列的初始化 9.1.5 初始化陣列 x:10,0,0 d:1.000000,0.000000,0.000000 y:100,200,300 7 6 5 warning: excess elements in array initializer 4 3 2 1 << 範例:陣列的初始化 陣列元素列舉 >>
|陣列元素列舉 100, 200, 300, 400, 500, 600, x[1] x[5] x[4] x[0] x[2] x[3] 9.1 陣列 |陣列元素列舉 9.1.6 陣列元素的列舉 x[1] x[5] x[4] x[0] x[2] x[3] 3 100, 200, 300, 400, 500, 600, 2 1 << 範例:陣列的初始化 範例:空陣列 >>
|範例:空陣列 2009198149,65536,575, 9.1 陣列 9.1.7 空陣列 2 1 << 陣列元素列舉 9.1 陣列 |範例:空陣列 9.1.7 空陣列 2009198149,65536,575, 2 1 << 陣列元素列舉 二維陣列 >>
|二維陣列 int tdx[3][4] ; 9.2 多維陣列 9.2.1 二維陣列 << 空陣列 9.2 多維陣列 |二維陣列 9.2.1 二維陣列 int tdx[3][4] ; << 空陣列 二維陣列的定義 >>
|二維陣列的定義 int tdx[3][6] ; 9.2 多維陣列 9.2.1 二維陣列 << 二維陣列 9.2 多維陣列 |二維陣列的定義 9.2.1 二維陣列 int tdx[3][6] ; << 二維陣列 二維陣列的存取 >>
|二維陣列的存取 tdx[1][2] ; 9.2 多維陣列 9.2.1 二維陣列 << 二維陣列的定義 9.2 多維陣列 |二維陣列的存取 9.2.1 二維陣列 tdx[1][2] ; << 二維陣列的定義 範例:二維陣列示範 >>
|範例:二維陣列示範 學生A:英文(80),數學(80),國文(77),自然(100) 9.2 多維陣列 |範例:二維陣列示範 9.2.1 二維陣列 學生A:英文(80),數學(80),國文(77),自然(100) 學生B:英文(60),數學(88),國文(75),自然(70) 學生C:英文(75),數學(40),國文(95),自然(80) 3 2 1 << 二維陣列的存取 範例:透過巢狀迴圈存取二維陣列 >>
|範例:透過巢狀迴圈存取二維陣列 學生 A(英文,數學,國文,自然): 學生 B(英文,數學,國文,自然): 9.2 多維陣列 |範例:透過巢狀迴圈存取二維陣列 9.2.2 利用巢狀式迴圈列舉二維陣列 6 5 學生 A(英文,數學,國文,自然): 學生 B(英文,數學,國文,自然): 學生 C(英文,數學,國文,自然): 80,80,77,100, 60,88,75,70, 75,40,95,80, 4 3 2 1 << 範例:二維陣列示範 範例:二維陣列初始化 >>
|範例:二維陣列初始化 100,200,300 123,456,789 9.2 多維陣列 9.2.3 二維陣列的初始化 9.2 多維陣列 |範例:二維陣列初始化 9.2.3 二維陣列的初始化 100,200,300 123,456,789 << 範例:透過巢狀迴圈存取二維陣列 三維陣列結構 >>
|三維陣列結構 xtd[1][2][4] 9.2 多維陣列 9.2.3 三維陣列 << 範例:二維陣列初始化 9.2 多維陣列 |三維陣列結構 9.2.3 三維陣列 xtd[1][2][4] << 範例:二維陣列初始化 陣列參數語法 >>
|陣列參數語法 void dosome(xtype xarr[]) ; void dosome(xtype xarr[]) { } 9.3 陣列與函數參數的傳址呼叫 |陣列參數語法 void dosome(xtype xarr[]) ; void dosome(xtype xarr[]) { } << 三維陣列結構 範例:函數的陣列引數 >>
|範例:函數的陣列引數 xarray[] 參數內容: 100,200,300,400,500,600, X[6] 9.3 陣列與函數參數的傳址呼叫 |範例:函數的陣列引數 X[6] xarray[] 參數內容: 100,200,300,400,500,600, 5 4 3 2 1 << 陣列參數語法 陣列:函數的陣列傳址呼叫 >>
|陣列:函數的陣列傳址呼叫 x[] 陣列元素:100,200,300,400,500,600, 呼叫 setArray() ... 9.3 陣列與函數參數的傳址呼叫 |陣列:函數的陣列傳址呼叫 X[6] 999 9 x[] 陣列元素:100,200,300,400,500,600, 4 8 呼叫 setArray() ... 3 7 x[] 陣列元素: 100,200,300,999,500,600, 2 6 1 5 << 範例:函數的陣列引數 字串語法 >>
|字串語法 char c[]="Good" ; c 陣列將會儲存 Good 字串 輸出字串必須指定 %s 格式碼 9.4 字串資料 9.4 字串資料 |字串語法 9.4.1 關於字串 char c[]="Good" ; c 陣列將會儲存 Good 字串 輸出字串必須指定 %s 格式碼 << 範例:函數的陣列傳址呼叫 範例:字串與字元 >>
Good Night and Good Luck 9.4 字串資料 |範例:字串與字元 9.4.1 關於字串 Good Night and Good Luck << 字串語法 指定字串長度 >>
|指定字串長度 char c[10]="GoodNight" ; 9.4 字串資料 9.4.2 宣告固定長度字元陣列 9.4 字串資料 |指定字串長度 9.4.2 宣告固定長度字元陣列 char c[10]="GoodNight" ; << 範例:字串與字元 範例:固定字元陣列字串 >>
|範例:固定字元陣列字串 c1:ABCDEFG c2:ABCDEFG l @ \ @ E轀w 9.4 字串資料 9.4 字串資料 |範例:固定字元陣列字串 9.4.2 宣告固定長度字元陣列 4 3 c1:ABCDEFG c2:ABCDEFG l @ \ @ E轀w 2 1 << 指定字串長度 字串與字元 >>
|字串與字元 char c1[7]={'T','A','I','W','A','N','\0'} ; 001 char c4[7] ; 9.4 字串資料 |字串與字元 9.4.3 字串與字元 char c1[7]={'T','A','I','W','A','N','\0'} ; 001 char c4[7] ; 002 c4[0] = 'T' ; 003 … << 範例:固定字元陣列字串 範例:字元陣列與字串 >>
|範例:字元陣列與字串 c1:TAIWAN c2:TAIWAN c3:TAIWAN髯 蒔篤TAIWAN c4:TAIWAN 9.4 字串資料 9.4 字串資料 |範例:字元陣列與字串 9.4.3 字串與字元 c1:TAIWAN c2:TAIWAN c3:TAIWAN髯 蒔篤TAIWAN c4:TAIWAN << 字串與字元 gets() 與 puts() 函數 >>
|gets() 與 puts() 函數 gets(c) ; puts(c) ; pubs("Hello World") 9.4 字串資料 |gets() 與 puts() 函數 9.4.3 字串與字元 gets(c) ; 與 scanf() 類似,讀取使用者輸入的字串。 c 是一個特定長度的字元陣列變數用以承接使用者輸入的字串。 puts(c) ; pubs("Hello World") 提供輸出字串的功能。 << 範例:字元陣列與字串 範例:字串存取 >>
|範例:字串存取 WELCOME C Hello C 9.4 字串資料 9.4.4 gets() 與 puts() 4 3 2 1 9.4 字串資料 |範例:字串存取 9.4.4 gets() 與 puts() WELCOME C Hello C 4 3 2 1 << gets() 與 puts() 函數 範例:scanf() 的空白字串讀取 >>
|範例:scanf() 的空白字串讀取 Welcome C Welcome 9.4 字串資料 9.4.4 gets() 與 puts() 2 9.4 字串資料 |範例:scanf() 的空白字串讀取 9.4.4 gets() 與 puts() Welcome C Welcome 2 1 << 範例:字串存取 字串二維陣列 >>
char sa[4][10] = {"AAA","BBB","CCC","DDD"} ; 9.5 字串陣列 |字串二維陣列 char sa[4][10] = {"AAA","BBB","CCC","DDD"} ; sa 是 4x10 的二維陣列。 第 1 個數值 4 儲存的串數目。 第2 個數值 10 儲存字串的長度。 << 範例:scanf() 的空白字串讀取 範例:字串存取 >>
|範例:字串存取 9.4 字串資料 9.4.3 gets() 與 puts() << 字串二維陣列 9.4 字串資料 |範例:字串存取 9.4.3 gets() 與 puts() << 字串二維陣列 strlen() 函數 >>
|strlen() 函數 size_t strlen(const char *s) s 為測試長度的字串,而回傳值代表字串的長度。 9.6 字串函數 |strlen() 函數 9.6.1 取得字串長度 size_t strlen(const char *s) s 為測試長度的字串,而回傳值代表字串的長度。 size_t 型態的數值,是一個無號的整數。 << 範例:字串存取 範例:取得字串長度 >>
|範例:取得字串長度 字串長度:13 9.6 字串函數 9.6.1 取得字串長度 2 1 << strlen() 函數 9.6 字串函數 |範例:取得字串長度 9.6.1 取得字串長度 字串長度:13 2 1 << strlen() 函數 大小寫轉換函數 >>
|大小寫轉換函數 char *strlwr(char *str) ; char *strupr(char *str) ; 9.6 字串函數 |大小寫轉換函數 9.6.2 轉換大小寫 char *strlwr(char *str) ; char *strupr(char *str) ; strlwr() 將參數 str 的組成字元全部轉換成為小寫。 strupr() 則將參數 str 的組成字元全部轉換成為大寫。 << 範例:取得字串長度 範例:轉換字串大小寫 >>
|範例:轉換字串大小寫 大寫:HELLO WORLD ! 小寫:hello world ! 9.6 字串函數 9.6.2 轉換大小寫 3 2 9.6 字串函數 |範例:轉換字串大小寫 9.6.2 轉換大小寫 大寫:HELLO WORLD ! 小寫:hello world ! 3 2 1 << 大小寫轉換函數 搜尋字串函數 – strcspn >>
|搜尋字串函數 - strcspn size_t strcspn( const char *s1, const char *s2); 9.6 字串函數 |搜尋字串函數 - strcspn 9.6.3 搜尋子字串 size_t strcspn( const char *s1, const char *s2); s1 為所要搜尋的主字串。 s2 為搜尋條件。 回傳的結果值表示 s2 中任何一個字元第一次出現在 s1 字串中的索引位置。 << 範例:轉換字串大小寫 範例:搜尋字元 >>
出現 HELLO 任一字元的第一個索引位置:4 9.6 字串函數 |範例:搜尋字元 9.6.3 搜尋子字串 4 3 出現 HELLO 任一字元的第一個索引位置:4 2 1 << 搜尋字串函數 - strcspn 範例:字串存取 >>
char *strcpy(char *s1,const char *s2); 9.6 字串函數 |範例:字串存取 9.6.4 複製與串字串 char *strcpy(char *s1,const char *s2); 字串常值 s2 的內容,複製到 s1 ,並且回傳 s1 的內容 char *strcat(char *s1,const char *s2); s1 與 s2 是兩個要合併的字串。 s2 的值被合併至 s1 ,最後回傳合併後的字串。 << 範例:搜尋字元 範例:字串存取 >>
|範例:字串存取 原始字串:ABCDEFGH 複製字串:ABCDEFGH 回傳字串:ABCDEFGH 9.6 字串函數 9.6 字串函數 |範例:字串存取 9.6.4 複製與串字串 7 6 5 4 3 2 1 原始字串:ABCDEFGH 複製字串:ABCDEFGH 回傳字串:ABCDEFGH << 範例:字串存取 範例:字串存取 >>
|範例:字串存取 原始字串:ABCDEFGH 輸入欲合併字串: 合併結果:ABCDEFGHXYZ XYZ 9.6 字串函數 9.6 字串函數 |範例:字串存取 9.6.4 複製與串字串 6 5 原始字串:ABCDEFGH 輸入欲合併字串: 合併結果:ABCDEFGHXYZ 4 XYZ 3 2 1 << 範例:字串存取 |