C++ atoi()函數用法案例詳解

1 功能

atoi()函數將數字格式的字符串轉換為整數類型。例如,將字符串“12345”轉換成數字12345。

2 格式

該函數的格式為

int atoi(const char* str)

其中,參數str是要轉換的字符串,返回值是轉換後的整數。

3 註意事項

3.1 關於參數的註意事項

在“2 格式”中提到,atoi()函數的參數是要轉換的字符串。該字符串的格式為

[空格][符號][數字]

其中,空格可以是鍵盤中的空格字符或者是Tab字符;符號可以是表示正數的“+”,也可以是表示負數的“-”;數字即為數字字符串。所以,atoi()函數參數可以是

“ +123”

“ -456”

需要註意的是,空格和“+”可以省略。所以,atoi()函數參數還可以是

“123”

“-456”

3.2 關於返回值的註意事項

如果atoi()函數轉換成功,則該函數的返回值是轉換後的整型。如果atoi()函數轉換失敗,例如要轉換的類型超過瞭int表示的范圍,如果要轉換的是正數,則返回INT_MAX(2147483647),如果要轉換的是負數,則返回INT_MIN(-2147483648)。代碼如下所示

str1 = " 3336402735171707160320";

value1 = atoi(str1);

if (INT_MAX == value1)

{

printf("要轉換的值超出瞭int的上邊界。\n");

}

 

str2 = " -3336402735171707160320";

value2 = atoi(str2);

if (INT_MIN == value2)

{

printf("要轉換的值超出瞭int的下邊界。\n");

}

需要註意的是,atoi()函數在stdlib.h中定義,所以在使用atoi()函數時,需要包含該頭文件。

atoi()函數當讀取到參數中的’\0’字符時,停止讀取並返回。

3.3 判斷轉換是否成功

雖然atoi()函數的參數和返回值中不包含轉換是否成功的標志,但是可以通過系統變量errno的值來判斷轉換是否成功。

相關鏈接:

系統變量errno:errno 是記錄系統的最後一次錯誤代碼。代碼是一個int型的值,在errno.h中定義。查看錯誤代碼errno是調試程序的一個重要方法。

在調用atoi()函數時,如果轉換成功,則errno的值是0;如果遇到“3.2 關於返回值的註意事項”中提到的超出范圍錯誤時,errno的值將會被設置為ERANGE。

if (errno == ERANGE)
{
printf("要轉換的數字超出int范圍.\n");

}

4 寬字符的轉換

atoi()函數的寬字符串版本是_wtoi()函數。該函數的格式為

int _wtoi(const wchar_t* str);

其參數與返回值的含義與atoi()函數相似。

到此這篇關於C++ atoi()函數用法案例詳解的文章就介紹到這瞭,更多相關C++ atoi()函數用法內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: