看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2010 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) iostream 問題(Question): 其實這是求救文了...... 今天在想一個練習題,題目是: 「宣告一個字元陣列,並給以適當的初始值字串。使用迴圈將每個字元改為大寫字元」 我第一次寫的時候,仍然搞不清楚 new的動態陣列配置用法 因此一直遇到 heap corruption的結果 後來私信向一位板友請教後,總算搞懂了正確的觀念,結果現在陷入了窘境 因為我要輸入一串英文字串,並且配合輸入的長度 new出一個陣列 但要知道出入字串的長度的話,無論用 sizeof或 strlen,都需要先把字串放到陣列裡 可是我不能先固定陣列的大小,然後這問題就變成無窮迴圈了...... 請問如果只用 new的話,這問題有解嗎0.0? (我現在學到的程度,大概就到了解函式的基礎架構這樣0.0) (題目似乎沒有要求說一定要輸入字串再小寫改大寫 但我想知道如果要求輸入的話要怎麼做......) 餵入的資料(Input): 假設是 asdFGHjklQWerT 預期的正確結果(Expected Output): ASDFGHJKLQWERT 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/72H6Ycel 這是第一版,可以達成我要的要求,但只有前10個字元,而且會造成 heap corruption 補充說明(Supplement): -- 吾乃 不死之眾矢之的 無右之聯合之盾 武田軍最強騎兵團首席武將 不死鬼 馬場美濃守信房是也 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.233.53
ZanFu5566:cin.getline(buffer,maxnumber,delim) 01/16 23:14
ZanFu5566:你寫這樣'\n'變成最多當然只讀10個 01/16 23:15
ZanFu5566:'\n' 為ascii 0x0a = 10 01/16 23:16
ZanFu5566:http://ppt.cc/DYH0 可以來這邊查用法 01/16 23:17
那裡是我當初以為用動態陣列的話,cin.getline就不用填maxnumber...... 原來不一定要填的是delim 0.0
PkmX:1. 先問對方會有多長 然後最多就讀那麼長 01/16 23:23
PkmX:2. 固定buffer的大小 分段處理 01/16 23:23
PkmX:3. 用string/vector 不夠的時候自行增長/copy 01/16 23:24
1.我希望能讓測試者盡量自由...... 2.這我沒想到耶......感謝提供! 3.那超出我現在所學範圍了 囧,而且我希望盡量用該章節教的東西來寫題目0.0
loveme00835:什麼態度... 愈超前愈好阿, 不要把學習限制在課堂範圍 01/16 23:40
loveme00835:資訊領域學不完的 01/16 23:41
我是怕學太超前反而會混亂......連物件我都還沒學到0.0 還是說其實沒關係?
PkmX:其實3你自己做也可以 不一定要用別人寫好的string或vector 01/16 23:45
ZanFu5566:我覺得 熟悉你現在的方法 跟學超出所學範圍是兩回事 01/16 23:45
PkmX:3的話依你目前程度應該可以算是很好的練習 01/16 23:45
ZanFu5566:你可以先用動態陣列做完 再用string or vector做一次 01/16 23:46
diabloevagto:直接stl的string 01/16 23:48
我剛剛翻了正在看的參考書,vector是在STL的範圍裡,還在 template之後0.0 而我才剛學完怎麼建構基本函式而已,連函式指標都還不會...... 所以大家是建議我可以先直接去看STL那章嗎?因為我是自學的,沒有老師可以問 O_O
diabloevagto:如果要硬幹你可以先預設大小,如果超過就建個更大的 01/16 23:51
diabloevagto:例如原先的兩倍,接著把原先的複製過來,再繼續讀入 01/16 23:52
這也是一個方法......感謝!
diabloevagto:沒差吧,用了就對了,不會再去查就好 01/17 00:06
EdisonX:奇怪,寫得比較好的書很前面就教 vector 怎麼用了,企圖讓 01/17 00:19
EdisonX:閱讀者盡可能使用 vector 而不用 new,怎麼你還在 new 打轉 01/17 00:20
我是看《Visual V++ 2008教學手冊》這本自學的 這本書 new放第四章,vector放第十章0.0
linotwo:http://ideone.com/al3r0D 01/17 00:27
linotwo:讓使用者輸入字串,用動態配置的字元陣列儲存,空間不足 01/17 00:28
linotwo:會重新配置多五個的陣列。 01/17 00:28
linotwo:http://ideone.com/TfJKdP 01/17 00:38
linotwo:將輸入字串轉大寫 01/17 00:38
昨天在信裡也一直受到你的照顧 m(_ _)m
PkmX:試試看一行: http://liveworkspace.org/code/4n5qWg$0 01/17 00:50
._.a
loveme00835:我也沒修過課... 01/17 00:59
loveme00835:locale很煩... http://ppt.cc/ZpWz 01/17 01:28
PkmX:很多東西還是要自己看啦 課程能講個template已經揪甘心了 01/17 02:48
PkmX:要不然大概就 animal cat dog speak() 幾下就結束了 01/17 02:49
PkmX:更不用講algorithm iterator raii boost和c++11的東西了 01/17 02:49
xvid:我剛好以前在版上問過 #1GFD7D6H 01/17 03:02
嗯......了解了 O_O ※ 編輯: o07608 來自: 114.39.233.53 (01/17 08:55)
amozartea:用vector 01/19 02:49
amozartea:不對 你連vector都不需要 用string就好了... 01/19 02:50