一維陣列:
一、一維陣列的定義格式為:
型別說明符 陣列名[常量表示式];
註解:定義陣列時需要註明陣列元素的個數,即陣列長度,定義時可不賦初值。
c語言不允許對陣列大小做動態定義,即陣列的大小不依賴於程式執行過程中變數的值。
二、陣列賦值問題
1、在定義陣列時,可以給陣列賦以全部初值;
2、也可以只給一部分元素賦值,未賦值的為0;
3、如果想使乙個陣列中全部元素值為0,可以寫成:
int a[10]=;
或int a[10]=;
不能寫成:int a[10]=;
4 、在
對全部陣列元素賦初值時,由於資料的個數已經確定,因此可以不指定陣列長度;
三、字元陣列
1、對於字元陣列初始化,可以逐個字元賦給陣列中各元素;例如:char c[10]=
也可一次性賦值,例如:char c[10] = {「hello」};為了測定字串的實際長度,c語言規定了乙個「字串結束標誌」——『\0』。
2、字元陣列的輸入輸出有兩種方法:
a、逐個字元輸入輸出。用格式符「%c」輸入或輸出乙個字元。
b、將整個字串一次輸入或輸出。用「%s」格式符,意思是對字串的輸入輸出。
註解:(1)用「%s」格式符輸出字串時,printf函式中的輸出項是字元陣列名,而不是陣列元素名。
(2)如果陣列長度大於字串實際長度,也只輸出到遇′\0′結束。
(3)輸出字元不包括結束符′\0′。
(4)如果乙個字元陣列中包含乙個以上′\0′,則遇第乙個′\0′時輸出就結束。
(5)可以用scanf函式輸入乙個字串。
四、字串處理函式
1. puts函式
其一般形式為: puts (字元陣列)
其作用是將乙個字串(以′\0′結束的字串行)輸出到終端。
假如已定義str是乙個字元陣列名,且該陣列已被初始化為"china"。則執行puts(str);其結果是在終端上輸出china。
用puts函式輸出的字串中可以包含轉義字元。
2. gets函式
其一般形式為:gets(字元陣列)
其作用是從終端輸入乙個字串到字元陣列,並且得到乙個函式值。該函式值是字元陣列的起始位址。
如執行下面的函式: gets(str)
從鍵盤輸入:
computer↙將輸入的字串"computer"送給字元陣列str
3. strcat函式
其一般形式為:strcat(字元陣列1,字元陣列2)
strcat的作用是連線兩個字元陣列中的字串,把字串2接到字串1的後面,結果放在字元陣列1中,函式呼叫後得到乙個函式值——字元陣列1的位址。
4. strcpy函式
其一般形式為:strcpy(字元陣列1,字串2)
strcpy是「字串複製函式」。
作用:是將字串2複製到字元陣列1中去。例如:
char str1[10],str2[]=;
strcpy(str1,」china」);
註解: (1)字元陣列1必須定義得足夠大,以便容納被複製的字串。字元陣列1的長度不應小於字串2的長度。
(2)「字元陣列1」必須寫成陣列名形式(如str1),「字串2」可以是字元陣列名,也可以是乙個字串常量。如:strcpy(str1,″china″);
(3)複製時連同字串後面的′\0′一起複製到字元陣列1中。
5. strcmp函式
其一般形式為:strcmp(字串1,字串2)
strcmp的作用是比較字串1和字串2。
例如:strcmp(str1,str2);strcmp(″china″,″korea″); strcmp(str1,″beijing″);
比較的結果由函式值帶回
(1) 如果字串1=字串2,函式值為0。
(2) 如果字串1>字串2,函式值為一正整數。
(3) 如果字串1《字串2,函式值為一負整數。
注意:對兩個字串比較,不能用以下形式:
if(str1>str2) printf(″yes″);
而只能用
if(strcmp(str1,str2)>0) printf(″yes″);
6. strlen函式
其一般形式為:strlen (字元陣列)
strlen是測試字串長度的函式。函式的值為字串中的實際長度(不包括′\0′在內)。
例如:char str[10]=;printf(″%d″,strlen(str));
C語言之陣列 字串
陣列 一 陣列的定義和賦值 int ages 5 每個元素佔4個位元組,整個陣列的大小為4 元素個數5 int ages 定義陣列可以不宣告長度,後邊大括號裡的元素個數決定陣列的長度 int ages a a 65,所以這個陣列的長度為65 ages 0 29 為某乙個元素賦值或替換 二 陣列的遍歷...
C語言之字串,陣列
注意char a abcdef 與char a abcdef 的區別 1 字串存放的記憶體區域不同 前者存放在常量區,不可修改,後則存放在棧中,可以修改 2 變數a存放的內容不同 前者存放的是乙個位址,而後者存放的是字串 abcdef 因此使用sizeof它們的結果是不同的,分別是4和7 c 是靜態...
C語言之陣列和字串
陣列的使用 對一維陣列的輸入 int a 5 i 陣列必須先定義後使用,且在定義時,必須指定陣列的長度。比如這裡不能這樣 int a.for i 0 i 5 i scanf d a i 這裡i 5是給他限定輸入資料個數的範圍,也就是當輸入這麼多資料後,系統不再接收資料 由於陣列元素儲存型別為int,...