2011-04-25 40 views
2

我在啓動應用程序時收到命令行參數。 我從命令行獲取四個參數。如何知道std :: string/Cstring中的值是否爲數字

解析後我將它們存儲在四個std :: string/CString(mfc)變量中,現在我需要知道該值是十進制還是不是。因爲這些參數將用於某些數學計算。

任何人都可以幫助我做到這一點。

回答

3

here你可以找到如何確定一個字符串是否是數字,用70種語言!

我不確定是否所有解決方案都檢查相同的事情。 C++實現檢查輸入是基於10的正/負整數/浮點,或者如果a是基8/16的正/負整數。 這是你想要的嗎?你需要只支持正數嗎?你需要支持浮點嗎?

也許你需要將你的輸入字符串轉換爲數字值,所以沒有理由分兩步做(檢查,然後轉換)。最好一步完成。

還有一件事:如果輸入字符串太長,例如「32525252332912461984612491264912649126129319312931279171295127951275129」 - 您通常不希望將其視爲有效輸入。

+0

哦,不錯。對於那些還沒有關注鏈接的人來說,「70種語言」是指計算機語言,而不是人類語言。 – 2011-04-25 13:07:38

2

看看字符串中的每個字符,如果發現不是數字或'。'的東西,那麼它就不是數字。

+0

cool..nice idea – 2011-04-25 13:00:45

+3

失敗:「0.1.2.3」通過測試但不是有效的數字。 – 2011-04-25 13:16:26

+0

是的,你需要某種計數器來確保只有0或1個''。' – Vache 2011-04-25 13:26:01

1

只需使用明確報告失敗的字符串 - >數字轉換函數。

例如strtod而不是atof

相關問題