跳轉到內容

C 程式設計/stdlib.h/atoi

來自華夏公益教科書,自由的教科書

atoi 是 C 程式語言中的一個函式,用於將字串轉換為整數的數值表示形式。atoi 代表 ASCII to integer。它包含在 C 標準庫標頭檔案 stdlib.h 中。它的原型如下

int atoi(const char *str);

str 引數是一個字串,用字元陣列表示,包含一個帶符號整數的字元。該字串必須以空字元結尾。當 atoi 遇到沒有數值序列的字串時,它會返回零 (0)。

atoi 函式有幾種變體,atolatofatoll,分別用於將字串轉換為 longdoublelong long 型別。atoll 以前稱為 atoq,包含在 C99 中。

不可能判斷字串是否包含表示數字 0 的有效數字序列或無效數字,因為該函式在這兩種情況下都會返回 0。較新的函式 strtol 沒有這種缺陷。

atoi 在某些作業系統上既不是執行緒安全的,也不是非同步取消安全的。[1]

此外,atoi 僅轉換十進位制 ASCII 值(這可能也是優勢,取決於觀點)。strtol 和其他函式支援十六進位制和八進位制等備用進位制。

標準一致性

[編輯 | 編輯原始碼]

atoi、atof 和 atol 函式是 ISO 標準 C 庫(C89)的一部分,而 atoll 函式由 C99 新增。

然而,由於返回 0 的模糊性以及在某些作業系統上缺乏執行緒安全性和非同步取消安全性,atoi 被認為已被 strtol 棄用。[1]

參考文獻

[編輯 | 編輯原始碼]

Version 7 Unix 手冊頁 © 1979 by Bell Telephone Laboratories, Incorporated。

Version 1 Unix 手冊頁 for atoi 由 Ken Thompson 編寫(1971 年 11 月)。

  1. a b http://www.codecogs.com/reference/c/stdlib.h/atoi.php
[編輯 | 編輯原始碼]
華夏公益教科書