char c[6];//發現這裡無論定義多長用strcat會擴充陣列大小
c[0]='c'; c[1]='h';c[2]='i';c[3]='n';c[4]='a';c[5]='\0'; //不加零(結束標誌的話strcat是有問題)
char d[14]=;//定義時中的數字必須大於填充的值,這裡也演示了出現0x00陣列會被認為結束的現象,但在編譯的時候它又可以視別出長度不夠,這裡的0x00與\0等價
strcat(c,d);
printf("%s\n",c);
用來存放字元資料的陣列是字元陣列,字元陣列中的乙個元素存放乙個字元。字元陣列具有陣列的共同屬性。由於字串應用廣泛,c和c++專門為它提供了許多方便的用法和函式。
定義字元陣列的方法與前面介紹的類似。例如
char c[10];
c[0]=′i′;c[1]=′ ′;c[2]=′a′;c[3]=′m′;c[4]=′ ′;c[5]=′h′;c[6]=′a′;c[7]=′p′;c[8]=′p′;
c[9]=′y′;
上面定義了c為字元陣列,包含10個元素。在賦值以後陣列的狀態如圖5.7所示。
圖5.7
對字元陣列進行初始化,最容易理解的方式是逐個字元賦給陣列中各元素。如
char c[10]=;
把10個字元分別賦給c[0]~c[9]這10個元素。
如果花括號中提供的初值個數大於陣列長度,則按語法錯誤處理。如果初值個數小於陣列長度,則只將這些字元賦給陣列中前面那些元素,其餘的元素自動定為空字元。如果提供的初值個數與預定的陣列長度相同,在定義時可以省略陣列長度,系統會自動根據初值個數確定陣列長度。如
char c=;
也可以定義和初始化乙個二維字元陣列,如
char diamond[5][5]=,,,,};
只能對字元陣列的元素賦值,而不能用賦值語句對整個陣列賦值。如
char c[5];
c=; //錯誤,不能對整個陣列一次賦值
c[0]=′c′; c[1]=′h′;c[2]=′i′;c[3]=′n′;c[4]=′a′; //對陣列元素賦值,正確
如果已定義了a和b是具有相同型別和長度的陣列,且b陣列已被初始化,請分析:
a=b; //錯誤,不能對整個陣列整體賦值
a[0]=b[0]; //正確,引用陣列元素
例5.9 設計和輸出乙個鑽石圖形。
#include
using namespace std;
void main( )
,,,,};
int i,j;
for (i=0;i<5;i++)
}執行結果為
** *
* *
* **
字元陣列的定義和初始化
1 字元陣列的定義與初始化 字元陣列的初始化,最容易理解的方式就是逐個字元賦給陣列中各元素。char str 10 即把10個字元分別賦給str 0 到str 9 10個元素如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定為...
字元陣列初始化與賦值
char a 10 怎麼給這個陣列賦值呢?1 定義的時候直接用字串賦值 char a 10 hello 注意 不能先定義再給它賦值,如char a 10 a 10 hello 這樣是錯誤的!2 對陣列中字元逐個賦值 char a 10 3 利用strcpy char a 10 strcpy a,he...
陣列的定義和初始化
陣列是相同型別的有序集合。陣列是一種特殊的變數,一次性向計算機申請 一片 連續的空間。通過長度來控制要開闢多少個練習的空間 通過資料型別來控制每個空間的大小。宣告 資料型別陣列名 new 資料型別 長度 陣列的元素 陣列中儲存的具體的值.陣列的長度 陣列中能容納最大的元素的個數。資料下標 陣列是通過...