[問題] 有何辦法判斷出輸入的整數值有前置的零

看板C_and_CPP作者 (鋼鐵人史塔克)時間13年前 (2012/09/10 16:32), 編輯推噓5(5012)
留言17則, 9人參與, 最新討論串1/1
我不懂 如何才能讓輸入的整數不能有前置的零,譬如00241 我用的是 scanf("%d",&a )來處理輸入的int 而我用a/10 a%10 都不能找出前置的零 請教一下,如果還是用輸入整數 有何辦法判斷出輸入的整數值有前置的零嗎, 教教我吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.241.70

09/10 16:36, , 1F
字串才有前置的零
09/10 16:36, 1F

09/10 16:38, , 2F
可是我輸入0021仍然可以當整數 21處理,我無法偵測!
09/10 16:38, 2F

09/10 16:39, , 3F
因為題目規定不能有leading zero
09/10 16:39, 3F

09/10 16:39, , 4F
所以要用字串來輸入才有辦法偵測。
09/10 16:39, 4F

09/10 16:45, , 5F
就是scanf讀字串 不要讀整數 從字串來偵測完再轉整數
09/10 16:45, 5F

09/10 16:49, , 6F
c還c++?c++的話可以用streamsting
09/10 16:49, 6F

09/10 16:53, , 7F
C++
09/10 16:53, 7F

09/10 19:18, , 8F
同學您好 何謂整數 何謂字串 整數前面如何有0
09/10 19:18, 8F

09/10 19:20, , 9F
其實寫名字不滿三個字要加啪 曹操啪想召降關羽啪 好厲害啪
09/10 19:20, 9F

09/10 19:21, , 10F
總之請讀字串 進來處理 上面兩行是閒聊
09/10 19:21, 10F

09/10 19:34, , 11F
C++都教String了吧,有教char嗎?有教記憶體存取嗎?
09/10 19:34, 11F

09/10 20:18, , 12F
while(scanf("%[^1-9]%n%d",zero,&zero_cnt, &num)==3)
09/10 20:18, 12F

09/10 20:19, , 13F
if(zero_cnt!=0) puts("error"); /*char zero[100]*/
09/10 20:19, 13F

09/10 20:20, , 14F
!! sorry, 剛才才看到 C++, C++ 應有其它做法可參考便是。
09/10 20:20, 14F

09/10 21:41, , 15F
可以用char array去存取這數值嗎 把數值當字元看待(誤)
09/10 21:41, 15F

09/10 21:43, , 16F
因為我印象中 要有前置的0取決於printf方面的modify = =
09/10 21:43, 16F

09/10 21:51, , 17F
我第一句的意思應該跟u94大是一樣的 XD 沒注意到
09/10 21:51, 17F
文章代碼(AID): #1GJQMroy (C_and_CPP)