将字符串转换为double

时间:2010-05-23 18:55:00

标签: c string pointers double const

我正在尝试将字符串(const char* argv[])转换为double精度浮点数:

int main(const int argc, const char *argv[]) {
    int i;
    double numbers[argc - 1];
    for(i = 1; i < argc; i += 1) {
        /* -- Convert each argv into a double and put it in `number` */
    }
    /* ... */
    return 0;
}

任何人都可以帮助我吗?感谢

4 个答案:

答案 0 :(得分:9)

使用sscanf (Ref)

sscanf(argv[i], "%lf", numbers+i);

strtod (Ref)

numbers[i] = strtod(argv[i], NULL);

顺便说一句,

for(i = 1; i < argc, i += 1) {
//-----------------^ should be a semicolon (;)

- &GT;

答案 1 :(得分:1)

答案 2 :(得分:1)

您可以使用stdlib.h中定义的strtod

理论上,scanf系列函数应该更有效,尽管我认为它不可测量。

答案 3 :(得分:0)

您还没有说明const char*可能采用的格式。假设它们是“1.23”之类的文本字符串,那么sscanf(argv[i], "%lf", &numbers[i-1])应该完成这项工作。