本期介绍
主要介绍:atof()、atoi()、atol()函数是如何使用的,分别有那些功能,以及在使用时一些值得注意的点。


文章目录

    • 一、前言
    • 二、atof()函数
    • 三、atoi()、atol()函数

一、前言

   C语言提供了一些可以将数字字符串转换成数字的一些库函数,例如atof()、atoi()、atol()函数。下面分别介绍这些函数的功能:

  1. atof()函数:将字符串转换成double型数据。
  2. atoi()函数:将字符串转换成int型数据。
  3. atol()函数:将字符串装换成long int型数据。

   注意:如果输入无法转换成该类型的数据,则返回值为0。


二、atof()函数

double atof( const char *string );

  在VS编译器中atof()库函数在调用前需要先引用两个头文件。atof()函数需要传一个字符串作为参数,且该字符串需要具有一定的格式:

1.科学计数法形式[空格][+/-][数字][.数字][ {d |D |e |E }[+/-]数字]
2.小数形式[空格][+/-][数字][.数字]

  atof()会扫描参数字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而后严格按照格式要求来判断,直到格式违规或遇到字符串结束标志‘\0’才会结束转换,返回一个double类型的数据。举几个例子:


三、atoi()、atol()函数

int atoi( const char *string );
long atol( const char *string );

  在VS编译器中atoi()和atol()函数需要引用一个头文件。这两个函数在传参部分没什么差别,只是在函数返回值部分有所差别:atoi()返回的是一个int型数据,atol()返回的是一个long int型数据。
 传参的字符串也有一定的格式:[空格][+/-][数字]。和atoi()、atol()函数会先扫描参数字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而后直到遇见非数字字符或字符串结束标志‘\0’才会结束转换,返回一个数值。举几个例子:

注意:如果atof()函数、atio()函数、atol()函数的返回值大于其返回类型的最大值就会出现溢出现象,从而导致传回来数据的某部分丢失。