[問題] 字元

看板C_and_CPP作者 (網洋中的一條狗)時間13年前 (2012/06/29 03:20), 編輯推噓4(404)
留言8則, 5人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux C 問題(Question): 自己已經把問題結決 但是還是不懂 原本的為何邏輯是錯的 程式碼(Code):(請善用置底文網頁, 記得排版) struct Tran_GPS { char time[24]; //int id; }; int main() { struct Tran_GPS tran1; strcpy(tran1.time, "2012/05/15-13:27:30.791"); //tran1.time[18]存的是 0 int totalmsecond=(int)(tran1.time[18]); printf("%d\n",totalmsecond); } 預期想要printf出來的是0 但 最後出來的是48 char *c=&tran1.time[18]; int totalmsecond=atoi(c); printf("%d\n",totalmsecond); 後來改成上面程式碼 才是出來0 後面改的程式碼 我知道原理 但問題是不太懂為啥 我最開始的打法是錯的? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.164.79

06/29 11:26, , 1F
字元 '0' = int 的 ?
06/29 11:26, 1F

06/29 11:35, , 2F
想要請問這樣不能用強制轉型 (tupe) 嗎??
06/29 11:35, 2F

06/29 11:38, , 3F
因為 '0' 對電腦來說就真的是數字 48....
06/29 11:38, 3F

06/29 11:38, , 4F
就算轉型也只是把 char 的 48 變成 int 的 48 而已
06/29 11:38, 4F

06/29 11:51, , 5F
int s=time[18] - '0';
06/29 11:51, 5F

06/29 11:51, , 6F
要向上面那樣? 我大概知道哩 謝謝大家幫助
06/29 11:51, 6F

06/29 22:18, , 7F
是想要使用printf("%c\n", totalmsecond);嗎?
06/29 22:18, 7F

07/02 13:01, , 8F
原本那樣子轉出來的是ASCII碼吧
07/02 13:01, 8F
文章代碼(AID): #1FxHyJ6x (C_and_CPP)
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
問題
1
1
問題
4
8
13年前, 2012/06/29 03:20
文章代碼(AID): #1FxHyJ6x (C_and_CPP)