博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
atoi/atof 字符串转Int/float
阅读量:4216 次
发布时间:2019-05-26

本文共 1827 字,大约阅读时间需要 6 分钟。

头文件必须包含 #include<stdlib.h>

atof()、atoi()、atol()、strtod()、strtol()、strtoul() 

(1)atof

函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:double atof (const char* str);

atof() 的名字来源于 ascii to floating point numbers 的缩写,它会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过  函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。参数str 字符串可包含正负号、小数点或E(e)来表示指数部分,如123. 456 或123e-2。  如果是以非数字开头,则返回0.
【返回值】返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0。

   *d = “100.34cyuyan”,

   *e = “cyuyan”;

    printf(“d = %.2f\n”, atof(d));
    printf(“e = %.2f\n”, atof(e));
执行结果:
d = 100.34
e = 0.00

(2)atoi

atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str);

【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过  函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。如果是以非数字开头,则返回0.

(3)atol

atol() 函数的名字源于“ascii to long”,用来将字符串转换成长整型数(long),其原型为:

    long atol(const char * str);
【函数说明】atol() 会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过  函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。如果是以非数字开头,则返回0.
【返回值】返回转换后的长整型数(long);如果 str 不能转换成 long 或者 str 为空字符串,那么将返回 0。

char *str1=”12344444.22aa”;

char *str2=”aa12344444.22”;
printf(“%ld\n%ld\n”,atol(str1),atol(str2));

输出结果:

12344444

0

(4)strtod

函数 strtod() 用来将字符串转换成双精度浮点数(double),其原型为:

double strtod (const char* str, char** endptr);
【参数说明】str 为要转换的字符串,endstr 为第一个不能转换的字符的指针。
【函数说明】strtod() 函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 函数来检测),直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。参数 str 字符串可包含正负号、小数点或E(e)来表示指数部分。如123. 456 或123e-2。
若endptr 不为NULL,则会将遇到的不符合条件而终止的字符指针由 endptr 传回;若 endptr 为 NULL,则表示该参数无效,或不使用该参数。
【返回值】返回转换后的浮点型数;若不能转换或字符串为空,则返回 0.0。

char *str3=”123.54a2344”;

char *pend;
char *pend2;
double a=strtod(str3,&pend);
double b=strtod(pend,&pend2);
printf(“%c %c\n”,*pend,*pend2);
printf(“%.2f %.2f\n”,a,b);

结果输出:

a a

123.54 0.00

因为检测遇到’a’后停止,所以第一个可以输出123.54,但是第二个strtod(),从‘a’开始检测,‘a’非数字符也非空白符,所以直接停止。

转载地址:http://ymimi.baihongyu.com/

你可能感兴趣的文章
Python学习笔记——面向对象2
查看>>
Web前端学习笔记——Canvas 01
查看>>
Python学习笔记——文件操作、综合应用
查看>>
Python学习笔记——函数
查看>>
Python学习笔记——字符串、列表、元组、字典
查看>>
Python学习笔记——判断语句和循环语句
查看>>
Python学习笔记——Python和基础知识
查看>>
Python学习笔记——知识强化
查看>>
人工智能学习笔记——数据分析处理库Pandas
查看>>
基于STM32F103的Max30100心率、血氧检测代码
查看>>
人工智能学习笔记——可视化库matplotlib
查看>>
人工智能学习笔记——可视化库Seaborn
查看>>
人工智能学习笔记——线性回归算法
查看>>
Web前端学习笔记——Canvas 03
查看>>
人工智能学习笔记——梯度下降算法
查看>>
人工智能学习笔记——逻辑回归算法
查看>>
两小时学会Git玩转Github
查看>>
Allegro学习笔记——焊盘概念
查看>>
Allegro学习笔记——Group_Class和Subclass
查看>>
Allegro学习笔记——Allegro中的文件类型
查看>>