zoukankan      html  css  js  c++  java
  • 【C语言】编写函数实现库函数atof

    //编写函数实现库函数atof
    #include <stdio.h>
    #include <assert.h>
    #include <ctype.h>
    #include <math.h>
    double calculate(const char *src, int flag)
    {
    	double num = 0.0;
    	int n = 0;
    	int count = 0;
    	while (*src)
    	{
    		if ((*src >= '0') && (*src <= '9'))//推断输⼊入是否为⾮非数组字符
    		{
    			num = num * 10 + (*src - '0');
    			src++;
    			if (n)
    			{
    				count++;
    			}
    		}
    		else if (*src == '.')
    		{
    			n = 1;
    			src++;
    		}
    		else
    		{
    			num = 0;
    			break;
    		}
    	}
    	if (n)
    	{
    		num = num / powl(10,count);
    	}
    	return flag * num;
    }
    double str_to_int(const char *str)
    {
    	double num = 0.0;
    	int flag = 1;
    	if (str != NULL && *str != '')
    	{
    		while (isspace(*str))
    		{
    			str++;
    		}
    		if (*str == '+')
    			str++;
    		else if (*str == '-')
    		{
    			str++;
    			flag = -1;
    		}
    		 if (*str != '')
    		{
    			num = calculate(str, flag);
    		}
    	}
    	return num;
    }
    int main()
    {
    	printf("%f
    ", str_to_int(" +23.45"));
    	printf("%f
    ", str_to_int(" -2.345"));
    	printf("%f
    ", str_to_int("+234.5"));
    	printf("%f
    ", str_to_int("-2345.44"));
    	printf("%f
    ", str_to_int("2345"));
    	printf("%f
    ", str_to_int("-1111.11"));
    	printf("%f
    ", str_to_int(""));
    	printf("%f
    ", str_to_int("123ab"));
    	return 0;
    }

  • 相关阅读:
    ProtoType Design Tools
    什么是publickeytoken及publickeytoken的作用
    Windows最高权限system帐户
    Q70 AV01本本安装MAC
    解决MDict3在PPC下乱码的问题
    QT_XSP.CPP
    QT_XSP.CPP
    SetupFactory脚本
    DVD IFO FILE HEADER
    SerialPort comstat is being used without defining
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6915107.html
Copyright © 2011-2022 走看看