Re: [wizs] 問題[玖]

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間13年前 (2012/10/31 17:59), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《justinj (黑旋風)》之銘言: : 這個實在是沒法度解決..只好拿來問了 : 就是我想要判斷某個字串是不是這樣的形式 %dh%s時 : 我會用if(sscanf(str,"%dh%s",v,tmp)!=2)來判斷它 : 但是..如果我只想判斷一個..像%dh的形式時 是沒有用的 : 例如 str = "4444h"...那用上敘的判斷來寫的話 sscanf(str,"%dh",v) 會等於1 : str = "aaaa"時還是一樣會等於1 sscanf 無法解決的問題,我一般會用 str[a..b] 再搭配 strlen(str) 的方式解決,偶爾用一下 atoi。 例如說當 str = "4444h" 時,atoi(str) 是等於 4444的 ,它的原理就是它只取前幾個是整數的部份。 所以 atoi("128.44") = 128, atoi("3h9f") = 3, ... 你可以想像 atoi 的運作原理就是 while(str[i..i]是數字時) { . . } 那正常來講應該沒有 sscanf 不能解決的問題,我是比較 懷疑是不是 sscanf 本身有問題。 另外你也可以用 strsrch 去判斷 str 裡面有沒有 "h". 比方 if(判斷到 str 有 "h") tmps = explode(str,"h"); 這樣就可以把 str 從 "h" 這個字串的位置進行拆解,例 如 4444h -> ({"4444"}) // 因為 h 後面沒東西 44h33 -> ({"44","33"}) 我是覺得最好一開始就不要讓 str 的範圍太寬,比方你限 定 str 一定要有 "h", 那就用 strsrch 去抓;限定起頭 一定要有非 0 的數字, 就用 atoi 去抓; ... Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 223.143.125.187 ※ 編輯: laechan 來自: 223.143.125.187 (10/31 17:59)

10/31 18:43, , 1F
突然想到用另一個方法處理了...
10/31 18:43, 1F
文章代碼(AID): #1GaFPeY3 (mud_sanc)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
1
1
文章代碼(AID): #1GaFPeY3 (mud_sanc)