数值字符串转换函数


atoi

#include <stdlib.h>
int atoi(const char *nptr);

atoi把一个字符串开头可以识别成十进制整数的部分转换成int型 。

例如:

atoi("123abc");//返回值是123,
atoi(" -90.6-");//字符串开头可以有若干空格,返回值是-90
atoi("asdf");//如果字符串开头没有可识别的整数,则返回0
atoi("0***");//也返回0,根据返回值并不能区分上面这两种情况,所以使用atoi函数不能检查出错的情况。 

atof

#include <stdlib.h>
double atof(const char *nptr);

atof把一个字符串开头可以识别成浮点数的部分转换成double型。

字符串开头可以识别的浮点数格式和C语言的浮点数常量相同:

atof("31.4 ");//返回值是31.4
atof("3.14e+1AB");//返回值也是31.4

strtol

#include <stdlib.h>
long int strtol(const char *nptr, char **endptr, int base);

strtolatoi的增强版,主要体现在这几方面:

  • 不仅可以识别十进制整数,还可以识别其它进制的整数,取决于base参数。
  • endptr是一个传出参数,函数返回时指向后面未被识别的第一个字符。
  • 如果字符串中的整数值超出long int的表示范围(上溢或下溢),则strtol返回它所能表示的最大(或最小)整数,并设置errnoERANGE。
strtol("0XDEADbeE~~", NULL, 16);//返回0xdeadbee的值
strtol("0777~~", NULL, 8);//返回0777的值

strtod

#include <stdlib.h>
double strtod(const char *nptr, char **endptr);

trtodatof的增强版,增强的功能和strtol类似。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM