作者akka5678 ()
看板C_and_CPP
標題[問題] 陣列問題...
時間Wed Dec 16 14:42:15 2015
小弟新手,有個疑問想請教各位大神
想請問中文字在陣列裡是佔幾個空間?
char str1[4] = {"C++"}; //這只要配四個就好,因為有包括\0
char str2[9] = {"聖誕快樂"}; //但這要配9個,所以一個字佔兩個空間嗎?
__________________
| C | + | + | \n |
|___|___|___|____| cout << st1[1] ; //輸出C
cout << str[2] ; //輸出+
但str2就不能單獨輸出一個字,只能輸出整個字串?
cout << str2[1]; //輸出t ?
cout << str2[2]; //空白
cout << str2[3]; //空白
.....
cout << str2; //聖誕快樂
想請各位大神指教
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.15.48.128
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1450248137.A.ED2.html
推 stupid0319: 中文字佔兩個char呀,不過Unicode的英文也是兩個 12/16 14:48
推 stupid0319: Google找下big5規則跟Unicode 12/16 14:51
→ a27417332: 印象中Unicode是編碼,UTF是實作方法吧 12/16 15:09
→ a27417332: 印象中英文字2 byte應該也是看環境,吧(不確定 12/16 15:13
→ LPH66: 一個中文字幾個 byte 對初學者這是大哉問 12/16 15:23
→ LPH66: 這跟你的原始檔、編譯方式和執行環境都有關 12/16 15:23
→ LPH66: 如果是 2 byte 的狀況你就想成跟 BBS 一樣就對了 12/16 15:24
→ LPH66: 不是 2 byte 的再來問 12/16 15:24
推 overhead: 恩這是一個很複雜的議題 複雜到不適合新手 你可以google 12/16 22:53
→ overhead: unicode UTF-8 ANSI等等關鍵字去了解相關訊息 12/16 22:54