您的位置:首页 > 其它

字符串转化为浮点型atof与strtod

2008-07-03 16:08 141 查看
#include<stdlib.h>
#include<errno.h>
int main()
{
char a[24] = {0};
char *b = NULL;
float c1 = 0.0;
float c2 = 0.0;
scanf("%s", a);
c1=atof(a);
printf("b = %d/n",b);
c2=strtod(a,&b);
if(b[0]==0)
{

printf("b is null/n");
}
else if(b[0] == ' ')
{
printf("b is spaces/n");
}
printf("b = %d/n",b);
printf("b = %s/n",b);
printf("c1=%.2f, c2=[%f]/n",c1, c2);
printf("errno = [%d]/n", errno);

return 0;
}

输入"11.1a"

输出

b = 0 b = 804399012 b = a c1=11.10, c2=[11.100000] errno = [0]

可见atof不能判断出字符串是否是合法字符串,

用函数strtof可以根据strtod(a,&b),b是是否是""(空串,但b的地址不为空)来判断字符串是否是合法的字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: