[問題] 一時糊塗幫抓bug

看板C_and_CPP (C/C++)作者 (天意不可微 可微則連續)時間16年前 (2009/04/28 02:02), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/1
char array_a[max]; char array_b[max]; cin >> array_a; for(;array_a[N++]!='\0';) {} cin >> array_b; for(;array_b[M++]!='\0';) {} cout << "number_1: "; for(int i = 0; i < N; i++) cout << (int)array_a[i] - '0'; 為什麼我輸出的結果後面都會出現-48呢?? 不懂@! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.91.18

04/28 02:06, , 1F
如果字元有3個字 那麼N就在4
04/28 02:06, 1F

04/28 02:08, , 2F
array_a這時只有0 1 2有非0值 array_a[3]放的是\0
04/28 02:08, 2F

04/28 02:09, , 3F
所以到了i == N-1的時候 恰好在0,0-'0'就是 -'0' == -48
04/28 02:09, 3F

04/28 02:09, , 4F
把++N的事情寫在for的第三欄可以解決
04/28 02:09, 4F

04/28 02:13, , 5F
(a[0]!=0) => N=1... (a[2]!=0)=> N=3.. (a[3]==0) =>N=4
04/28 02:13, 5F

04/28 02:15, , 6F
已解決 感謝大神~
04/28 02:15, 6F

04/28 02:17, , 7F
啊 我不是大神..
04/28 02:17, 7F
文章代碼(AID): #19zVD6Po (C_and_CPP)
文章代碼(AID): #19zVD6Po (C_and_CPP)