看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 我在練習primer plus c++裡面的題目,但是有一題,題目是這樣的: 銷售C++給Fools公司。試撰寫一程式,可以讓你輸入每一月份的銷售本數,此程式 必須使用迴圈提示輸入月份,利用char *陣列來初始化月份字串,並將輸入資料存 到int陣列,計算此int陣列的總合,並印出此年的總銷售量。 題目要求用char *來初始化月份字串,所以我的宣告是 int book[12],tot=0; //book[]為每個月的銷售量 char *pb; char mon[12]={'Jan','Feb',....} //內容省略 問題就出在這裡,因為題目要求要用char *,所以我的mon[]就必須要用char, 但是我又想使用英文的月份代稱,就沒辦法存入char裡面... 我不是很懂題目規定"利用char *陣列來初始化月份字串"的意思 是不是我誤會了呢? 程式跑出來的錯誤結果: [Warning] multi-character character constant 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) DEV C++ 有問題的code: (請善用置底文標色功能) 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.161.22
stupid0319:char* mon[12]={"Jan","Feb",....}; 11/12 14:13
再請問一下,如果用這樣的方法,要怎麼移到mon[1]呢? 因為原本用指標可以+1,那陣列要怎麼向後移呢? ※ 編輯: silia 來自: 114.42.161.22 (11/12 14:26)
stupid0319:*(mon+1) 11/12 14:36
silia:謝謝你^^ 11/12 14:37
loveme00835:請愛用 char const* 當做這種類型的指標型態... 11/12 14:38
阿...我不太懂這是什麼意思耶... 是說月份的建構嗎? 改成char const *mon={...}這樣嗎? ※ 編輯: silia 來自: 114.42.161.22 (11/12 14:42)
TsinTa:一樓的寫法會出現warning @@" 加const就沒問題了 11/12 14:42
silia:請問是改成char const *mon={...}這樣嗎? 11/12 14:44
TsinTa:改看看就知道了... 11/12 14:45
silia:我改了~可是我用stupid0319版友說的方式 也沒有出現錯誤耶~ 11/12 14:46
silia:所以我不知道差別在哪裡>"< 11/12 14:47
stupid0319:現在編譯器都很貼心,所以感覺不出差別 11/12 14:48
stupid0319:現階段不使用const也沒關係吧,先把字串學好再說 11/12 14:50
silia:好!謝謝~~^^ 11/12 14:51
loveme00835:如果炸在 mon[ 1 ][ 0 ] = 'a', 怎麼能學得好 ? 光處 11/12 14:52
loveme00835:裡莫名的錯誤都來不及了 11/12 14:52
stupid0319:網路上很多源始碼也沒在用char const*的 11/12 14:58
loveme00835:是喔...好碼那麼多就好了 11/12 15:00
stupid0319:無碼比好碼多太多了 11/12 15:15
xatier:樓上... 11/12 16:39
wfgh:因為mon是一個存著指標的陣列吧?而裡面每個指標都各自指向 11/13 01:33
wfgh:常數字串,是這個意思嗎? 11/13 01:33