看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《Aligu1009 (=.=)》之銘言: : 遇到的問題: (題意請描述清楚) : 2. 第18行的strtok()回傳NULL時,轉型為string的動作會產生 run time error "" 跟 NULL 可說是天差地遠的兩種東西。 以 0 為起始位址的 string 怎麼看都是有問題的, 就算不丟 exception 也幾乎都會 segmentation fault。 就算是在沒有 OS 的環境下這種機率也是微乎其微, 所以你還是乖乖寫判斷吧。 而且你表面上看起來那叫轉型, 但實際上是建構物件的動作。 並不像你定義一個 int 型別的變數 i, 然後寫 (double)i 可以假設程式絕對不會當掉這麼簡單。 : 1. 請問 line 9 和 lin 10的寫法為什麼會對第14行的 strtok產生不同的效果? 第九行的字串型別應該是 const char * 而不是 char *, strtok() 的第一個參數要求是 char *, 這個函式會修改字串的內容所以不能是 const char *。 : 2. 當strtok回傳NULL時該怎麼assign給word呢? : 我知道可以用if else 先判斷strtok的回傳值再決定要assign什麼給word : 但這種寫法似乎 "比較髒",總覺得應該有漂亮一點的寫法 : 不知道各位是怎麼做的呢? 謝謝 你就是只能這樣寫 if else, 反正 C-style string 跟 C++ string 混用就已經很髒了, 加上你還有 C-style casting, 相較之下這個 if else 也沒多髒。 -- Ling-hua Tseng (uranus@tinlans.org) Department of Computer Science, National Tsing-Hua University Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Software pipelining for VLIW architectures Homepage: http://www.tinlans.org -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.106.249 ※ 編輯: tinlans 來自: 118.160.106.249 (03/03 00:08)
loveme00835:我是有看過一本教 C語言的書, I/O都用cin, cout, 有 03/03 00:40
loveme00835:的學校本身就是混著教, 如果加上學生沒有多翻參考書.. 03/03 00:41
chchwy:推一下本來就很髒了XDDD 03/03 00:45