2011-04-27 44 views
3

what_if_var[0].price(類型爲char [10])的值爲「$ 15555.665」。無論如何要從值中刪除「$」(如「15555.665」)並將該值轉換爲雙精度值?刪除結構變量中的特殊字符

+1

如果價格是char [10],那麼值'$ 15555.665'是緩衝區溢出。小心。 – 2011-04-27 16:00:32

+0

@保羅很好。 @jcrshankar nul終止符需要第11個字節。 – chrisaycock 2011-04-27 16:04:35

+0

偉大的保羅..我只是把它作爲例子。 – jcrshankar 2011-04-27 16:22:48

回答

5

如果你總是知道'$'將是第一個字符,你可以只嘗試:

double num = strtod (what_if_var[0].price + 1, NULL); 
+0

你也可以叫'atof()',儘管一些有禮貌的社會認爲這是不贊成的。 – chrisaycock 2011-04-27 15:57:56

+0

謝謝克里斯......是否有將字符串轉換爲雙精度的方法。 – jcrshankar 2011-04-27 16:00:41

+0

@jcrshankar'strtod()'代表「* string * to * double *」。這正是你正在尋找的功能。 – chrisaycock 2011-04-27 16:01:47

1

檢查功能strtod,將字符串轉換爲加倍。