[問題] C關於字串轉數字計算
開發平台(Platform):VS2013
問題(Question):
小弟在寫身分證驗證時,遇到字串不能進行計算這問題所以GOOGLE了一下
知道了後面加個-'0'就可計算
Y = x[0] + 9 * x[1] + 8*(id[1] - '0') + 7*(id[2] - '0') + 6*(id[3] - '0') +
5*(id[4] - '0') + 4*(id[5] - '0') + 3*(id[6] - '0') + 2*(id[7] - '0') +
1*(id[8] - '0')+(id[9] - '0');
但是為何宣告要這樣才能過啊...求解釋謝謝大大!!
char id[11];
id[10] = '\0';
這樣就不行如圖下 然後跑出這錯誤視窗
char id[10];
http://ppt.cc/hruE
程式碼(Code):http://ideone.com/xQFzzk
--
願翱翔於天空之際
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.133.55
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1420968086.A.642.html
※ 編輯: LouisFFs (1.172.133.55), 01/11/2015 18:01:06
※ 編輯: LouisFFs (1.172.133.55), 01/11/2015 18:07:29
→
01/11 18:23, , 1F
01/11 18:23, 1F
→
01/11 18:24, , 2F
01/11 18:24, 2F
→
01/11 18:26, , 3F
01/11 18:26, 3F
推
01/11 18:26, , 4F
01/11 18:26, 4F
→
01/11 18:27, , 5F
01/11 18:27, 5F
→
01/11 18:28, , 6F
01/11 18:28, 6F
→
01/11 18:28, , 7F
01/11 18:28, 7F
回覆:謝謝大大回答!!我知道字串後面有\0,也知道為何要-'0'但是不了解為何以下這樣
才給過ex:char id[11];id[10] = '\0';
而我單純宣告char id[10];不能過,我在其他程式碼不用用上面那個方法宣告也沒有錯誤
※ 編輯: LouisFFs (1.172.133.55), 01/11/2015 18:53:01
→
01/11 19:18, , 8F
01/11 19:18, 8F
→
01/11 19:19, , 9F
01/11 19:19, 9F
→
01/11 19:20, , 10F
01/11 19:20, 10F
→
01/11 20:04, , 11F
01/11 20:04, 11F
推
01/11 20:17, , 12F
01/11 20:17, 12F
→
01/11 20:19, , 13F
01/11 20:19, 13F
→
01/11 23:29, , 14F
01/11 23:29, 14F
→
01/12 17:45, , 15F
01/12 17:45, 15F
→
01/13 11:31, , 16F
01/13 11:31, 16F