码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数 函数原型:double my_atof(char *str)

时间:2015-04-04 10:43:08      阅读:686      评论:0      收藏:0      [点我收藏+]

标签:数字字符串转换为对应数字   c语言   

编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)

例如:“12.34“  返回12.34

        “-123.34“ 返回-123.34

函数原型:doublemy_atof(char *str)

提示:

需要在函数中判断负号,小数点,还要判断是不是数字字符。在判断小数点时需定义一个计数器来计算小数点后数字字符的个数。

#include <stdio.h>
#include <math.h>
double my_atof(char *str)
{
    char *ch = str;
    int flag=1;
    int point=0;
    int count=0;
    double sum = 0;
    while(*ch !='\0')
        {
            if(*ch == '-')      //判断负号
            {
                flag = -1;
                ch++;
            }
            if(*ch == '.')      
            {
                point=1;
                ch++;
            }
            if(*ch >= '0' && *ch <= '9')
            {
                sum=sum*10+(*ch-'0');
                ch++;
            }
            if(point==1)    //遇到小数点计数器加1
            {
                count++;

            }
        }
        sum=flag*sum*pow(10,-count);
    return sum;
}
int main()
{
    char *str="12.83";
    double n;
    n=my_atof(str);
    printf("%f\n",n);
    return 0;
}

技术分享


C语言 将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数 函数原型:double my_atof(char *str)

标签:数字字符串转换为对应数字   c语言   

原文地址:http://blog.csdn.net/zhongqi0808/article/details/44871149

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!