// str2num.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "math.h"
int str2num(char *s)
{
char ch;
int i=0;
int a[255];
int sum=0;
do
{
ch=s[i];
a[i]=ch-'0';
i++;
}while(ch!='\0');
i-=2;
for (int j=0;j<i;j++)
{
//sum+=a[j]*pow(10,i-j);
sum+=a[j];
sum*=10;
}
sum+=a[j];//j=i
return sum;
}
float str2numf(char *s);
int main(int argc, char* argv[])
{
printf("Hello World!\n%d\n%d\n%f\n", str2num("12345"),str2num("0"),str2numf("123.678"));
printf("%f\n%f\n%f\n", str2numf("12345"),str2numf("123678."), str2numf("0.12345"));
printf("%f\n", str2numf(".12345"));
return 0;
}
float str2numf(char *s)
{
char ch;
int i=0;
int a[255];//整数部分
int k=0;
int b[255];//小数部分
float sum=0.0f;
bool zhengshu=true;
do
{
ch=*s;
if (ch!='\0')
{
s++;
}
else
{
break;
}
if (ch=='.')
{
zhengshu=false;
continue;
}
if (zhengshu)
{
a[i]=ch-'0';
i++;
}
else
{
b[k]=ch-'0';
k++;
}
}while(1);
for (int j=0;j<=i-1;j++)
{
//sum+=a[j]*pow(10,i-j);
if (j==i-1)
{
sum+=a[i-1];
}
else
{
sum+=a[j];
sum*=10;
}
}
float xiaoshu=0.0f;
for (j=k-1;j>=0;j--)
{
xiaoshu+=b[j];
xiaoshu/=10.0f;
}
sum+=xiaoshu;
return sum;
}
str2num
最新推荐文章于 2022-02-16 09:29:21 发布