C 語言標準函數庫分類導覽 - stdlib.h strtol()

stdlib.h 的函數 strtol() 接受字串當作參數,將字串中的數字轉換為 long 型態的整數,其餘非數字部份以另一指標儲存位址。另有第三個參數指定轉換的基底,若代入 0 ,表示基底為 8 、 10 或 16 。



以下程式利用函數 strtol() 擷取字串中的所有數字,然後計算出結果
#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>

int main(void)
{
    char *test = "the answer is 33.23mm + 25mm";
    char *endPtr = test;
    long sum = 0;
    
    while (*test) {
        sum += strtol(test, &endPtr, 0);
        test = endPtr;
        
        while (!isdigit(*test) && *test) {
            test++;
        }
    }
    
    printf("the answer is %d mm\n", sum);

    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:cstrtol.c
    功能:示範 stdlib.h 中函數 strtol() 的使用
    作者:張凱慶
    時間:西元2010年6月 */


編譯後執行,結果如下



您可以繼續參考


沒有留言: