编写一个能操作字符串的子函数f,将数字字符串转化成double型数字。例如字符串”123.34“操作完后是double型数据123.34。

编写一个能操作字符串的子函数f,将数字字符串转化成double型数字。例如字符串”123.34“操作完后是double型数据123.34。

直接用自带的
atof

可参考

double calculate(const char *src, int flag)
{
    double num = 0.0;
    int n = 0;
    int count = 0;
    while (*src)
    {
        if ((*src >= '0') && (*src <= '9'))//判断输⼊入是否为⾮非数组字符
        {
            num = num * 10 + (*src - '0');
            src++;
            if (n)
            {
                count++;
            }
        }
        else if (*src == '.')
        {
            n = 1;
            src++;
        }
        else
        {
            num = 0;
            break;
        }
    }
    if (n)
    {
        num = num / powl(10,count);
    }
    return flag * num;
}
double str_to_int(const char *str)
{
    double num = 0.0;
    int flag = 1;
    if (str != NULL && *str != '\0')
    {
        while (isspace(*str))
        {
            str++;
        }
        if (*str == '+')
            str++;
        else if (*str == '-')
        {
            str++;
            flag = -1;
        }
         if (*str != '\0')
        {
            num = calculate(str, flag);
        }
    }
    return num;
}