📜  C++ atol()

📅  最后修改于: 2020-09-25 08:47:13             🧑  作者: Mango

C++中的atol() 函数解释字符串的内容并返回其对应的整数值。

atol()原型

long int atol(const char* str);

它在头文件中定义。

atol() 函数将字符串作为参数,将其内容解释为整数,并在long int返回相应的值。

atol()参数

atol()返回值

atol() 函数返回:

如果转换后的值超出范围,则将导致未定义的行为。

示例1:atol() 函数如何工作?

#include 
#include 
using namespace std;

int main()
{
    char s[] = "-114"; 
    double number;
    cout << "Number in String = " << s << endl;

    number = atol(s);
    cout << "Number in Long Int = " << number;
    
    return 0;
}

运行该程序时,输出为:

Number in String = -114
Number in Long Int = -114

atol() 函数的有效整数值包含一个可选的+或-符号,后跟数字(0-9) 。 atol() 函数不像atof() 函数那样支持十六进制,无穷大和NaN表达式。

通常,atol() 函数的有效整数参数具有以下形式:

[whitespace] [- | +] [digits]

直到主非空白字符被找到蒂() 函数将忽略所有的前导空白字符 。

然后,从这个字符开始,它需要尽可能多的字符来形成有效的整数表示形式并将其转换为long int值。最后一个有效字符之后的字符串剩余部分将被忽略,并且对结果没有任何影响。

示例2:带有空格和结尾字符的 atol() 函数

#include 
#include 
using namespace std;

int main()
{
    cout << "Number in String = " << "    13" << endl;
    cout << "Number in Long Int = " << atol("    13") << endl << endl;
    
    cout << "Number in String = " << "  25    " << endl;
    cout << "Number in Long Int = " << atol("  25    ") << endl << endl;
    
    cout << "Number in String = " << "41.90abcd" << endl;
    cout << "Number in Long Int = " << atol("41.90abcd") << endl << endl;
    
    // Returns 0 because of invalid conversion
    cout << "abcd14" << " to Long Int = " << atol("abcd14") << endl;

    return 0;
}

运行该程序时,输出为:

Number in String =     13
Number in Long Int = 13

Number in String =   25    
Number in Long Int = 25

Number in String = 41.90abcd
Number in Long Int = 41

abcd14 to Long Int = 0