当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


C++ atol()用法及代码示例

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

atol() 原型

long int atol(const char* str);

它在<cstdlib> 头文件中定义。

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

参数:

  • str- 具有整数表示的字符串。

返回:

atol() 函数返回:

  • long int 值(从字符串转换而来)。
  • 如果无法执行有效转换,则为 0。

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

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

#include <iostream>
#include <cstdlib>
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() 函数不支持十六进制、无穷大和NaN像这样的表达atof.

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

[whitespace] [- | +] [digits]

atol() 函数会忽略所有前导空白字符,直到找到主要的非空白字符。

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

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

#include <iostream>
#include <cstdlib>
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

相关用法


注:本文由纯净天空筛选整理自 C++ atol()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。