[C++, CPP 教學 教程 教材 Tutorial] 進階資料型態(Advance Data Type) - 字元陣列(Char Array)
YehYeh\'s Notepad yehyeh@gmail.com 

[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'為止,若沒有結束字元,則會將字串後的記憶體資料輸出,直到遇到結束字元為止,或產生非法記憶體指涉
  • 字元陣列宣告:
    • 基本宣告:
      • 型態 名稱[大小];
    • 宣告並以固定值初始化陣列:
      • 型態 名稱[大小] = { 值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;
    }