atof / atoi 将字符串转换成浮点数及整型数。
自定义myatof / myatoi 函数
#include<stdio.h>
double myatof(const char *str)
{
double tmp = 10.0;
bool flag = true;
double ans = 0.0;
if(*str == '-')
{
flag = false;
str ++;
}
if(*str == '+')
str ++;
while(*str != '\0')
{
if(*str == '.')
{
str++;
break;
}
ans = ans * 10 + *str - '0';
str ++;
}
while(*str != '\0')
{
ans += (*str-'0')/tmp;
tmp *= 10;
str ++;
}
if(flag == false) return -ans;
else return ans;
}
int myatoi(char str[])
{
int ans = 0;
bool flag = true;
if(*str == '-')
{
flag = false;
str ++;
}
if(*str == '+')
str ++;
if(*str == '+')
str ++;
while(*str != '\0')
{
ans = ans * 10 + *str-'0';
str ++;
}
if(flag = false) return -ans;
else return ans;
}
int main()
{
char str1[] = "123.456";
char str2[] = "123456";
printf("%f\n",myatof(str1));
printf("%d\n",myatoi(str2));
return 0;
}