首页 > 代码库 > C++中atof函数的实现和atoi的实现

C++中atof函数的实现和atoi的实现

  在C++中有两个系统函数可以实现字符串转浮点型和字符串转整形,下面实现一下这两个函数。

#include <iostream>#include <string>using namespace std;double atof(const char* s)//字符型转浮点型{	int i = 0;	int k = 1;	double d;	double n = 0,m = 0;	bool flag = true;	if(*s == ‘-‘)//处理符号	{		flag = false;		i ++;	}	else	{		flag = true;	}	while(*(s + i) != ‘\0‘)	{		while(*(s + i) >= ‘0‘ && *(s + i) <= ‘9‘)//处理整数部分		{			n = n * 10 + (*(s + i) - ‘0‘);			i ++ ;		}		i ++;		while(*(s + i) >= ‘0‘ && *(s + i) <= ‘9‘)//处理小数部分		{			m = m * 10 + (*(s + i) - ‘0‘);			k *= 10;			i ++; 		}		}	if(flag)		d = n + m / k ;	else		d = -1 * (n + m / k);	return d;}int atoi(const char * s)//字符型转整形{	int n = 0,i = 0;	bool flag = true;	if(*s == ‘-‘)//处理符号	{		flag = false;		i ++;	}	else	{		flag = true;	}	while(*(s + i) != ‘\0‘ && *(s + i) >= ‘0‘ && *(s + i) <= ‘9‘)	{		n = n * 10 + (*(s + i) - ‘0‘);		i ++ ;	}	if(flag)		n = n;	else		n = -1 * n;	return n;}int main(int argc, char *argv[]){	char s[10];	char ss[10];	int n;	double d;	cout<<"Input a string!"<<endl;	cin>>s;	cout<<atof(s)<<endl;	cout<<"Input another string!"<<endl;	cin>>ss;	cout<<atoi(ss)<<endl;	return 0;}

  运行结果:技术分享

C++中atof函数的实现和atoi的实现