/*编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)例如:12.34 返回12.34 -123.34 返回-123.34函数原型:double my_atof(
【c语言】编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
带符号浮点数转换整数
/*编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
例如:"12.34" 返回12.34
"-123.34" 返回-123.34
函数原型:double my_atof(char *str)*/
#include
#include
#include
double my_atof(char const *str)
{
int count = 0;
int n = 0;
double p = 0.0;
assert( *str != NULL );
//删除空格
while( isspace( *str ))
{
str++;
}
//设置开关判断正负号
if( *str == '-' )
{
n = 1;
str++;
}
else
{
str++;
}
//判断小数点
while( *str != '\0' )
{
if( *str == '.' )
{
count++;
str++;
continue;
}
//记住小数点移动的次数
if( count )
{
count = count * 10;
}
p = p * 10 + ( *str - '0' );
str++;
}
//除以小数点移动的次数
p = p / count;
//
if( n == 1 )
{
p = - p;
}
return p;
}
int main()
{
char *p = "
-12.34";
printf("转换后为:%f\n",my_atof(p));
return 0;
}
上一篇【c语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
下一篇【c语言】判断一个字符串是不是回文字符串
顶
0
踩
0
,