[問題] c++的array字串問題

看板C_and_CPP (C/C++)作者 (Xen)時間16年前 (2009/05/03 13:41), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
小弟最近寫程式遇到一個問題 我用ifstream開了一個input並且開檔成功 這時候有個char code[4] 我用cin >> code輸入"qwer" 印出來是qwer無誤 但是如果我用for(int i = 0; i < 4; ++i) input >> code[i]; 這樣會印出qwer加一串亂碼 導致我用strcmp會出問題 請問為什麼會印出超過陣列範圍的東西? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.221.33

05/03 13:55, , 1F
然後我發現一開始先code[4]=0就好了 為什麼會這樣
05/03 13:55, 1F

05/03 13:57, , 2F
strcmp 他會去找 C-Style string 的 \0 (NULL字元)
05/03 13:57, 2F

05/03 13:57, , 3F
如果你要這樣比較的話 建議你用 memcmp 順便指定長度
05/03 13:57, 3F

05/03 14:08, , 4F
感謝解答 我再去看看DOC
05/03 14:08, 4F

05/03 14:11, , 5F
qwer\0 5 bytes.....
05/03 14:11, 5F
文章代碼(AID): #19_Ivx8f (C_and_CPP)
文章代碼(AID): #19_Ivx8f (C_and_CPP)