我想用 C 编写一个函数,它有一个字符串参数并返回一个双精度数。例如,当字符串是fsldnf213414fasfa
它应该返回213414
。但它也应该能够像fasfasf123.412412fasfff
as一样返回浮点数123.412412
。
我已经有一个只能提取整数而不是浮点数的函数:
double get_num(const char* s)
{
unsigned int limit = UINT_MAX / 10;
double value = 0;
if ( !s ) {
return 0;
}
for ( ; *s; ++s ) {
if ( value < limit ) {
if ( isdigit(*s) ) {
value *= 10;
value += (*s - '0');
}
}
else {
return UINT_MAX;
}
}
return value;
}