推 Hurricaneger: break是啥意思? 01/20 20:10
推 crazycy: C的字串(字元陣列)不能用==比較 請參見strcmp() 01/20 20:13
推 v86861062: 應該要用字串比較的函數吧 strcmp 01/20 20:13
→ jerryh001: 字串清空第一格放\0就好 然後printf不用\0應該是\n換行 01/20 20:16
那如果我用puts就要用\0嗎?
→ idiont: 使用雙引號包起來的字串都會自動加上\0 不用自己加 01/20 20:52
→ idiont: scanf讀進來的字串也會在結尾自動加上\0 01/20 20:54
→ idiont: \0後面的內容不會有影響 所以也不必初始化char陣列 01/20 20:54
http://codepad.org/8d9o7wpk
結果還是錯= = 我到底哪裡做錯了 是指標那邊嗎 因為直接宣告他會要我加指標
※ 編輯: timmy999 (180.217.210.147), 01/20/2019 20:57:01
推 a1u1usul3: strcmp相等的狀態會回傳0,造成他不會進入,要改成!str 01/20 21:18
→ a1u1usul3: cmp()或者strcmp()==0 01/20 21:18
了解了 謝謝
※ 編輯: timmy999 (36.238.37.173), 01/20/2019 21:56:45
推 dces4212: 提醒一下 ==只能比較字元 假如比較字串應該是未定義行 01/20 22:55
→ dces4212: 為 然後a == 這邊的a是dereference出a[0] 01/20 22:55
→ idiont: a的值是&a[0] 然後雙引號字串的值是字串的起始位置 01/21 00:05
→ idiont: a是放在stack中 雙引號字串放在data section 所以他們的值 01/21 00:06
→ idiont: 一定不一樣 01/21 00:06
推 LPH66: 基本觀念: C 字串 = 以 \0 結束的字元陣列 01/21 08:40
→ LPH66: 所以幾乎所有操作都是以整個陣列為主 01/21 08:40
→ LPH66: 那因為運算子對陣列沒有定義, 故這些操作都不是使用運算子 01/21 08:41
→ LPH66: 那既然是使用一系列函數來操作那就要仔細看函數的回傳值 01/21 08:42
→ LPH66: strcmp 並不只比較等不等, 所以你需要把其結果和 0 比較 01/21 08:43
推 LPH66: 另外不確定你們老師有沒有教, 不過請學著用 debugger 01/21 08:44
→ LPH66: 有些東西用 debugger 可以容易知道問題在什麼地方 01/21 08:45
推 dces4212: sor a不是dereference 說錯了 a[0]才是 01/21 18:35