將字符串數字轉換爲數字



編寫一個函數,將一個數字字符串轉換成這個字符串對應的數字(包括正浮點數、負浮點數)

例如:“12.34“  返回12.34

#include <stdio.h>
#include <math.h>
int main()
{
	double my_atof(char *str);
	double i;
	char str[] = "  +183.23";
	i = my_atof(str);						//調用函數
	printf("%f",i);
	return 0;
}
double my_atof(char *str)
{
	double ret = 0.0;
	double sign = 1.0;
	double count = 0.0;
	while( *str == ' ' )
	{
		str++;							//爲空格str++
	}
	if( *str == '-' )
	{
		sign = -1.0;						//爲負號,標記一個數爲-1
		str++;
	}
	if( *str == '+' )
		str++;							//爲正號,str++
	while( *str >= '0' && *str <= '9' )
	{
		ret = ret*10+*str-'0';					//爲數字
		str++;
	}
	if( *str == '.' )
	{
		str++;							//爲小數點,str++
	}
	while( *str )
	{
		count++;						//標記小數點後的位數
		ret = ret*10+*str-'0';
		str++;
	}
	ret = ret*sign/pow(10,count);					//計算出ret
	return ret;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章