C 陣列

      在〈C 陣列〉中尚無留言

為什麼要使用陣列

當大量同類型資料需要儲存時,就必需使用陣列

陣列宣告

int score[3]

超出範圍,會產生不可預期的當機

陣列初始值

int score[]={1,2,3,4,5};

int score[5]={0};

使用迴圈設定陣列

分別設定score, 使用for加總後算出平均值

一維陣列空間大小

sizeof(a) : 是算出整個陣列的大小

氣泡排序法

🔒 底下內容僅限會員閱讀。

立即登入

字元陣列

字元陣列類似字串,但字串最後會加入 \0, 用sizeof時 \0不會計算

宣告 :
char str[]={‘h’, ‘e’,’l’,’l’,’o’};
char str[]=”123456″;ç自動加  \0, 總長度是7
printf(“%s\n”,str);ç不用使用c_str(),因為char是基本型態,沒有c_str的函數
用此方法後,str=”abcd”會錯誤,
需使用strcpy(str, “123456”),此需include <string.h>
string a=”abcd”;
printf(“%s\n”, a.c_str()); çstring需使用c_str()轉成字元陣列。%s是印字元陣列

中文字元陣列

char str[]=”這是abc”; strlen(str)的結果是7, 取出中文字時,一定要取2byte, 不然會變成亂碼
中英文混雜時,就要先判斷char 是否大於127, 若是的話,就是中文,需再緊接取第二個字元
char str[]=”這是abc”;

   for(int i=0;i<strlen(str);i++){
      if((int)str[i]<0){
         printf("%c%c\n", str[i], str[i+1]);
         i++;
      }
      else{
         printf("%c\n", str[i]);
      }
   }

多維陣列宣告

int score[500][11], 共500列,11行

int t[5][4]={0};
   for (int i=0;i<5;i++){
      for (int j=0;j<4;j++){
         printf("%d ", t[i][j]);
      }
      printf("\n");
   }

二維字元陣列

char s[3][5]={“abcd”, “efgh”,”ijkl”}; ç3可以省略,但5絕對不能省

   for (int i=0;i<3;i++){
      printf("%s\n", s[i]);
   }

由此說明每個字串長度都一樣,所以需要指標

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *