當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。