/*编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
例如:"12.34" 返回12.34
"-123.34" 返回-123.34
函数原型:double my_atof(char *str)*/
#include <stdio.h>
#include <assert.h>
#include <ctype.h>
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;
}
<img src="https://img-blog.csdn.net/20150403114102330?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb3lhcWlhbjU1Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
【c语言】编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
最新推荐文章于 2023-03-21 11:34:36 发布