小小C語言之陣列與字串

2021-07-31 07:31:42 字數 2257 閱讀 3300

一維陣列:

一、一維陣列的定義格式為:

型別說明符  陣列名[常量表示式];

註解:定義陣列時需要註明陣列元素的個數,即陣列長度,定義時可不賦初值。

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,...