从c中的char *浮动

时间:2013-08-04 18:33:24

标签: c type-conversion

作为练习,我试图用2个简单的命令制作一个简单的假shell。这也是我第一次使用strtok。它需要一个命令(获取或设置)和一个访问参数(宽度,高度等)。我的问题是第三个参数是一个浮点数,我想把它从char *转换为strtok返回到我试图存储它的浮点变量。我现在不知所措。我曾经在c上非常有效率,但经过几年的休息,我惊讶于我忘记了多少语言。任何帮助将非常感激。我现在不回家,但如果我需要,我会发布代码。

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

也许atof正是您要找的?采用char *(例如来自strtok)并将其转换为double。

答案 1 :(得分:1)

要解析Double,您的选项是 -

  1. strtod() - 请参阅herehere

  2. atof() - 请参阅here

  3. sscanf() - 请参阅here

  4. atof不允许验证数字,如果解析失败,它将返回0.0。 sscanf有点麻烦,%f格式可能不会出现在所有系统上。试着看strtod或strtof(如果你想要花车)。

    你可以像这样使用它(txt是你的char *)

    char *end;
    float num = strtof(txt, &end);
    if (end != txt + strlen(txt))
    {
        // This means something went wrong
    }
    else
    {        
        // This means everything is OK
    }