[問題] 判別是否浮點數 (檔案內含整數、非數字)

看板C_and_CPP (C/C++)作者 (秘密)時間15年前 (2010/08/22 11:34), 編輯推噓1(1017)
留言18則, 5人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 在一個檔案(內含英文字、符號、非小數之數字)中找出小數的部分並排序 已經把英文與符號消去,但是不知道如何判讀出小數。 舉例而言: 123 //此為整數 1.2.3.4 //雖有小數點,但非小數 .123 123. 1.23 //此為小數 希望得到的正確結果: 應該要判讀出1.23為小數 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VC++ 有問題的code: (請善用置底文標色功能) 補充說明: 尚無,感謝解答。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.75.177

08/22 11:39, , 1F
.123、123. 不算嗎?
08/22 11:39, 1F

08/22 11:41, , 2F
嗯那不算,因為原檔是紊亂的文字符號和數字組成...
08/22 11:41, 2F

08/22 11:41, , 3F
應該說,原本全部都是字元,像網址那樣。
08/22 11:41, 3F
例如說 <link rel="stylesheet" href="http://bits.wikimedia.org/skins-1.5/vector/main-ltr.css?283p.1.3.5" type="text/css" media="screen" /> 這一行字,會抓到1.5(小數) 283(整數) .1.3.5(非數字) ※ 編輯: shesee 來自: 140.116.75.177 (08/22 11:46)

08/22 11:46, , 4F
簡單的話用 count_if 小數點個數為 1 才算, 再用 find
08/22 11:46, 4F

08/22 11:46, , 5F
確認小數點不在首尾
08/22 11:46, 5F

08/22 11:47, , 6F
是否考慮用regex ?
08/22 11:47, 6F

08/22 11:48, , 7F
直覺就是用regex...
08/22 11:48, 7F

08/22 11:49, , 8F
如果用.net 庫的 Regex 會更快就是..
08/22 11:49, 8F

08/22 11:54, , 9F
嗯嗯,研究看看,謝謝解答。
08/22 11:54, 9F

08/22 15:32, , 10F
先找只含有數字和小數點的區間,然後再判斷區間是否只
08/22 15:32, 10F

08/22 15:33, , 11F
有一個小數點這樣?
08/22 15:33, 11F

08/22 15:51, , 12F
那和count_if的目的是相同的(?)
08/22 15:51, 12F

08/22 21:10, , 13F
tr1和boost也有regex 不一定要用 .net
08/22 21:10, 13F

08/22 21:46, , 14F
我會推 .net 的原因是記得2005 沒有包含 tr1, 如果不
08/22 21:46, 14F

08/22 21:47, , 15F
會建boost庫, 就只有現成的.net庫可用了
08/22 21:47, 15F

08/22 21:52, , 16F
原PO給的資訊不夠多, 沒辦法給予更完備的建議
08/22 21:52, 16F

08/22 21:55, , 17F
boost的話比較推xpressive~
08/22 21:55, 17F

08/22 22:16, , 18F
原來還有這東東@_@
08/22 22:16, 18F
文章代碼(AID): #1CS9h1zj (C_and_CPP)
文章代碼(AID): #1CS9h1zj (C_and_CPP)