字符串转化为浮点型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的地址不为空)来判断字符串是否是合法的字符串
#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的地址不为空)来判断字符串是否是合法的字符串
相关文章推荐
- 浮点型的字符串转化为浮点型精度出现有问题,请哪位大哥指点一二???
- C++ 字符串转化成浮点型
- 把数字字符串(带有小数点)转化为整型(浮点型)
- C++ 字符串转化成浮点型
- atoi 和 atof (把数字字符串转化为数字储存)
- (用atoi系列)字符串转化为数字(整型、浮点型)
- C++ 字符串转化成浮点型
- 字符串日期转化为java日期格式
- java 字符串,字符数组,list间的转化
- javascript数组与字符串的相互转化
- 字节数组和字符串的相互转化……
- 把字符串转化为字符数组
- C++ 字符串, 数字 相互转化
- 数字转化成字符串左边自动补零方法整理
- C++ 字符串UTF8与GBK转化
- 将字符串转化为整数
- 将int型转化成五位字符串,前面用0填充
- 数值字符串转化为真实数值
- C# WebService中将集合数据转化为字符串(json,xml )的方式
- date与字符串互相转化