C语言字符串转浮点数
所属分类 c
浏览量 798
double atof(const char *nptr);
double strtod(const char *str, char **endptr)
把str 转换为浮点数
如果 endptr 不为空,则指向不能转换部分的第一个字符处
忽略前面的空白字符 碰到非数字字符 ,停止解析
strtod 第二个参数 char **endptr 理解
char *str= "0.99abc";
char *ptr;
double value = strtod(str, &ptr);
printf("value=%lf\n", value);
printf("string=%s", ptr);
strtod 内部,ptr 指向 0.99abc 中的 a , 因此需要 传入 ptr的指针 (指针的指针)
类似用法
定义一个整数 ,然后传入该整数的指针,在方法内部修改值
#include "stdio.h"
#include "stdlib.h"
int main(){
// 0.000000
printf("%lf\n",atof("a"));
// 0.000000
printf("%lf\n",atof("a1.0"));
// 1.000000
printf("%lf\n",atof("1.0a"));
char *str= "0.99abc";
char *ptr;
double value = strtod(str, &ptr);
printf("value=%lf \n", value);
printf("string=%s \n", ptr);
return(0);
}
输出
0.000000
0.000000
1.000000
value=0.990000
string=abc
上一篇
下一篇
C语言获取时间戳秒毫秒微秒
java 和 C 循环和递归性能比较
C++11 chrono 获取时间戳
C语言排序和搜索
C语言 rand srand rand_r
C语言动态内存分配与释放