C 速查手冊

11.4.3 strtod()

stdlib.h函數 (function) strtod() 接受字串 (string) 當作參數 (parameter) ,將字串中的數字轉換為 double 型態的浮點數,其餘非數字部份以另一指標儲存位址。

以下程式利用函數 strtod() 擷取字串中的所有數字,然後計算出結果

#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>

int main(void)
{
    char *test = "the answer is 33.23mm + 25mm";
    char *endPtr = test;
    double sum = 0.0;
    
    while (*test) {
        sum += strtod(test, &endPtr);
        test = endPtr;
        
        while (!isdigit(*test) && *test) {
            test++;
        }
    }
    
    printf("the answer is %.2f mm\n", sum);

    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://kaiching.org/
    檔名:cstrtod.c
    功能:示範 stdlib.h 中函數 strtod() 的使用
    作者:張凱慶 */

編譯後執行,結果如下

$ gcc cstrtod.c
$ a.out
the answer is 58.23 mm
$

上一頁 11.4.2 atoi()
回 C 速查手冊 - 標準程式庫分類索引
下一頁 11.4.4 strtol()
回 C 速查手冊 - 標準程式庫導覽
回 C 速查手冊首頁
回 C 教材首頁
回程式語言教材首頁