[C++, CPP] 進階資料型態
字元陣列(Char Array)
- 字元陣列
- C樣式字串(C-Style Strings):
- 結尾有空字元(Null Character)'\0'作為字串終止字元
- 字串結尾沒有用到的字元會自動設成結束字元('\0')
- 可以是字元陣列或字串
- 字串至少會比字元陣列多一個字串終止字元'\0'
- 字元陣列
char helloArray[ ] = { 'h', 'e', 'l', 'l', 'o' }; //5個元素
- 字串
char helloArray[ ] = "hello"; //6個元素
- 字元陣列
- 字元陣列不能當作字串使用
- 輸出字串時,會持續輸出到'\0'為止,若沒有結束字元,則會將字串後的記憶體資料輸出,直到遇到結束字元為止,或產生非法記憶體指涉
- C樣式字串(C-Style Strings):
- 字元陣列宣告:
- 基本宣告:
- 型態 名稱[大小];
- 宣告並以固定值初始化陣列:
- 型態 名稱[大小] = { 值1 };
- 宣告並以0初始化陣列:
- 型態 名稱[大小] = { };
- 型態 名稱[大小] = { 0 };
- 宣告並給每個元素各別的初始值:
- 型態 名稱[大小] = { 值1, 值2, ...,值n};
- 型態 名稱[ ] = { 值1, 值2, ...,值n};
- 基本宣告:
- 使用:
- 名稱[索引];
- 對字元陣列的每一個字元做處理
const int maxLength = 5; char chArray[maxLength ] = {'h', 'e', 'l', 'l', 'o' }; for(int i = 0; i < maxLength ; i++) { cout << chArray[i] << endl; }
- 對字串的每一個字元做處理
char myString[ ] = "hello"; for(int i = 0; myString[i] != '\0' ; i++) { cout << myString[i] << endl; }