中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中atoi()函數的實例用法

發布時間:2021-09-09 17:49:31 來源:億速云 閱讀:199 作者:chen 欄目:開發技術

這篇文章主要講解了“C++中atoi()函數的實例用法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++中atoi()函數的實例用法”吧!

目錄
  • 1 功能

  • 2 格式

  • 3 注意事項

    • 3.1 關于參數的注意事項

    • 3.2 關于返回值的注意事項

    • 3.3 判斷轉換是否成功

  • 4 寬字符的轉換

    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()函數的實例用法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    c++
    AI

    蒲城县| 堆龙德庆县| 邵阳市| 永春县| 剑阁县| 即墨市| 无为县| 商水县| 太原市| 垦利县| 儋州市| 芮城县| 彭泽县| 保山市| 沁源县| 登封市| 进贤县| 永泰县| 六安市| 含山县| 民和| 冷水江市| 长顺县| 榆林市| 阳朔县| 勃利县| 汉中市| 江安县| 奈曼旗| 海城市| 都江堰市| 古田县| 英超| 南川市| 林口县| 乌拉特中旗| 贵阳市| 齐齐哈尔市| 老河口市| 井陉县| 涟水县|