c語言中字符串轉數字函數

頭文件:#include <stdlib.h>


函數 strtod() 用來將字符串轉換成雙精度浮點數(double),其原型爲:
double strtod (const char* str, char** endptr);

【參數說明】str 爲要轉換的字符串,endstr 爲第一個不能轉換的字符的指針。

【函數說明】strtod() 函數會掃描參數str字符串,跳過前面的空白字符(例如空格,tab縮進等,可以通過 isspace()函數來檢測),直到遇上數字或正負符號纔開始做轉換,到出現非數字或字符串結束時('\0')才結束轉換,並將結果返回。參數 str 字符串可包含正負號、小數點或E(e)來表示指數部分。如123. 456 或123e-2。

若endptr 不爲NULL,則會將遇到的不符合條件而終止的字符指針由 endptr 傳回;若 endptr 爲 NULL,則表示該參數無效,或不使用該參數。

【返回值】返回轉換後的浮點型數;若不能轉換或字符串爲空,則返回 0.0。

溫馨提示:ANSI C 規範定義了 stof()atoi()atol()strtod()strtol()strtoul() 共6個可以將字符串轉換爲數字的函數,大家可以對比學習;使用 strtod(str, NULL) 與使用 atof() 結果相同。另外在 C99 / C++11 規範中又新增了5個函數,分別是 atoll()、strtof()、strtold()、strtoll()、strtoull(),在此不做介紹,請大家自行學習。

【示例】計算月球每年繞地球運行多少圈。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5. char szOrbits[] = "365.24 29.53";
  6. char* pEnd;
  7. double d1, d2;
  8. d1 = strtod (szOrbits, &pEnd);
  9. d2 = strtod (pEnd, NULL);
  10. printf ("月球每年繞地球運行 %.2f 周。\n", d1/d2);
  11. system("pause");
  12. return 0;
  13. }
執行結果:

月球每年繞地球運行 12.37 周。


轉自:http://c.biancheng.net/cpp/html/128.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章