c语言可以制定atof函数从字符串的某个位置开始翻译吗

请问c语言有没有办法能让atof函数从一个字符串的指定位置开始运行,就比如下面这个程序
#include
#include
int main()
{
double d;
char str[] = "-123+84";
d=atof(str);
printf("string=%s\ndouble=%lf\n",str,d);
return 0;
}

运行结果:
string=-123+84
double=-123.000000
可以看出来atof遇到非数字符“+”停止了,那能不能下次让atof函数从“8”这个字符开始翻译

自己写个atof好了。

供参考:

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

int main()
{
    int i, len = 0, flag, symbol;
    double val[256] = { 0 };
    char   str[256] = { 0 }; 

    printf("请输入表达式:");
    gets(str);
    for (i = 0, flag = 0; i < strlen(str); i++)
    {
        if (str[i] >= '0' && str[i] <= '9')
        {
            if (flag == 0)
            {
                symbol = 1;
                if (i > 0 && str[i - 1] == '-') symbol = -1;
                val[len++] = symbol * atof(&str[i]);
                flag = 1;
            }
        }
        else if (str[i] != '.')
            flag = 0;
    }
    if (len <= 0)    return 0;
    for (i = 0; i < len - 1; i++)
        printf("%f,", val[i]);
    printf("%f", val[i]);
    return 0;
}

img