实现my_atoi 和 my_atof函数

来源:互联网 发布:mac截图后存在哪了 编辑:程序博客网 时间:2024/06/05 00:59
/*   实现atof函数*/#include <stdio.h>#include <string.h>#include <assert.h>double atof( char* p){double value = 0.0;double i = 1;int sign = 1;char *str = p;assert( str != NULL);while (*str == ' '|| *str == '\t')//判断是否有空格和tab ;{str++;}if( *str++ == '-')   //判断是否有‘-’号 ;{sign = -1 * sign;;}if(*str == '+'){str++;}while(*str>='0' && *str<='9' && *str!='\0'){value = value*10+(*str-'0'); //十位加各位  百位加前面的value 千位加... ;str++;}while(*str == '.' || *str>='0' && *str<='9'){str++;                       //进入循环后先给 str++ 使其指向小数点后的第一位 ;i = i/10;                    //给 int i 除10 为0.1 0.01 ..... ;value = value + (*(str++)-'0')*i;//同上面的value ;}return value*sign; }int main(){    char *p="-11.0";double atof( char* p);printf("%f\n",atof(p));return 0;}
 
 
 
 
/*实现atoi函数       和上面的atoi异曲同工 。。。*/int my_atoi(char *str){int value = 0;int sign = 1;assert( str != NULL);while (*str == ' '|| *str == '\t'){str++;}if( *str == '-'){sign = -1 * sign;str++;}if(*str == '+'){str++;}if(*str>='0' && *str<='9' && *str!='\0'){value = value*10+(*str-'0');str++;}value = value * sign;return value;}

0 0
原创粉丝点击