作者NOtWorThy (天意不可微 可微則連續)
看板C_and_CPP
標題[問題] 一時糊塗幫抓bug
時間Tue Apr 28 02:02:45 2009
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
→ sunneo:如果字元有3個字 那麼N就在4 04/28 02:06
→ sunneo:array_a這時只有0 1 2有非0值 array_a[3]放的是\0 04/28 02:08
→ sunneo:所以到了i == N-1的時候 恰好在0,0-'0'就是 -'0' == -48 04/28 02:09
→ sunneo:把++N的事情寫在for的第三欄可以解決 04/28 02:09
→ sunneo:(a[0]!=0) => N=1... (a[2]!=0)=> N=3.. (a[3]==0) =>N=4 04/28 02:13
→ NOtWorThy:已解決 感謝大神~ 04/28 02:15
→ sunneo:啊 我不是大神.. 04/28 02:17