函式
<cstdlib>

atoi

int atoi (const char * str);
將字串轉換為整數
解析 C 字串 str,將其內容解釋為一個整數,並以 int 型別的值返回。

該函式首先丟棄所有必要的空白字元(如同在 isspace 中),直到找到第一個非空白字元。然後,從這個字元開始,取一個可選的前置正號負號,後跟儘可能多的十進位制數字,並將它們解釋為一個數值。

在構成整數的字元之後,字串可以包含其他字元,這些字元將被忽略,並且對該函式的行為沒有影響。

如果 str 中的第一個非空白字元序列不是一個有效的整數,或者如果 str 為空或只包含空白字元而導致不存在這樣的序列,則不執行轉換並返回零。

引數

str
以整數表示開頭的 C 字串。

返回值

成功時,函式返回轉換後的整數,型別為 int
如果轉換後的值超出了 int 可表示的值的範圍,將導致未定義行為。如果可能出現這種情況,請參見 strtol 以獲取更健壯的跨平臺替代方案。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* atoi example */
#include <stdio.h>      /* printf, fgets */
#include <stdlib.h>     /* atoi */

int main ()
{
  int i;
  char buffer[256];
  printf ("Enter a number: ");
  fgets (buffer, 256, stdin);
  i = atoi (buffer);
  printf ("The value entered is %d. Its double is %d.\n",i,i*2);
  return 0;
}

輸出

Enter a number: 73
The value entered is 73. Its double is 146.


資料競爭

訪問由 str 指向的陣列。

異常 (C++)

無異常保證:此函式從不丟擲異常。

如果 str 沒有指向一個有效的 C 字串,或者轉換後的值超出了 int 可表示的值的範圍,將導致未定義行為

另見