字符串转浮点型数值函数–C语言
#include<stdio.h>
#include<string.h>
/*-----字符串转化为数字-----*/
/*-----只有当是数值型的字符串时,才可以完成字符串的转换。目前仅仅是完成了整数部分的转换,*/
double Uintnum(char* digit)
{
unsigned int num = 0;
double num1 = 0;
while (*digit != '\0')
{
if (*digit >= '0' && *digit <= '9')
{
num = num * 10 + (*digit - '0');
digit++;
}
else
{
if (*digit == '.')
{
digit++;
break;
}
else
num = 0;
break;
}
}
while(*digit != '\0')
digit++;
digit = digit - 1;
while (*digit != '.')
{
if (*digit >= '0' && *digit <= '9')
{
num1 = num1*0.1 + (*digit - '0');
digit--;
}
else
{
num1 = 0;
break;
}
}
return(num + num1*0.1);
}
void main()
{
double data;
char a[100];
printf("please input string including any ASCII ! \n "); //打印字符串
scanf_s ("%s", a,30);
/*----借助scanf_s输入字符串,这个函数包含三个参数,第一个是输入类型,第二个是变量名,第三个是输入字符串的上限*/
data = Uintnum(a);
printf("%lf \n", data);
}
运行结果如下所示: