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!