看板 C_and_CPP 關於我們 聯絡資訊
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