我想寫一個YAML閱讀器,它必須執行的一個更基本的職責是通過單獨查看字符串來確定條目的類型。 (有明確聲明類型的方法,但隱式類型是YAML最具吸引力的功能之一)根據值的字符串表示形式確定值的類型?
本質上,我要注意的類型是整數,浮點數,字符串,布爾值true/false和空值由空字段表示)
字符串,true/false,null,這些很容易檢測到。但是整數和浮點數都會給我帶來麻煩,只是通過多少種不同的方式,通常是寫入的(浮點數有時以科學記數法表示,以十六進制數表示,等等)。
我的問題:在C++中什麼是認識從現場的浮動或整數,,可以很容易地表示包含數字串並轉換它的字符串表示到適當值的好辦法?
浮子可採取的格式(可能不是一個詳盡的列表)包括:
0.0
0.0f
0.f
0.
+0.0
-0.0e+413
雖然整數將採取形式:
99 // decimal
077 // octal
0xFF // hex
-10
+10
你想從頭開始或使用庫嗎? – fstamour 2012-08-03 02:57:24
如果您的編譯器符合C++ 11,則它具有正則表達式。這很容易(如果你對正則表達式有一些基本的瞭解)可以使用它們來做你所要求的。 – fstamour 2012-08-03 02:59:54
@Sharpie - 如果可能的話沒有圖書館。我看着正則表達式頭,它似乎也只是答案!但是......我對正則表達式的把握對於一個事物的掌握可能有點脆弱。 – 2012-08-03 03:08:31