【C語法學習】27 - 字符串轉換為數字

文章目錄

  • 1 atoi()函數
    • 1.1 函數原型
    • 1.2 參數
    • 1.3 返回值
    • 1.4 轉換機制
    • 1.5 示例
      • 1.5.1 示例1

1 atoi()函數

1.1 函數原型

atoi():將str指向的字符串轉換為整數,函數原型如下:

int atoi(const char *str);

1.2 參數

atoi()函數只有一個參數str:

  1. 參數str是指向要轉換為整數的字符串的指針,類型為char*型。

1.3 返回值

atoi()函數的返回值類型為int型。

  1. 轉換成功,返回轉換后的int型整數;
  2. 轉換失敗,返回0值。

1.4 轉換機制

  1. atoi()函數將str指向的字符串轉換為int型整數;
  2. atoi()函數將字符串轉換為整數的過程類似于scanf()函數從stdin中讀取字符賦值給變量的過程:
    (1)有效字符為±符號和數字字符1-9;
    (2)跳過所有空字符;
    (3)如果第一非空字符是無效字符,則轉換失敗,返回0值;
    (4)如果第一非空字符是有效字符,則轉換繼續,直至遇到第一個無效字符為止(無效字符包括字母、標點符號和空字符等)。

C語言標準描述如下:

1. Interprets an integer value in a byte string pointed to by str. 
2. The implied radix is always 10.
3. Discards any whitespace characters until the first non-whitespace character is found, then takes as many characters as possible to form a valid integer number representation and converts them to an integer value. 
4. The valid integer value consists of the following parts:--- (optional) plus or minus sign--- numeric digits
5. If the value of the result cannot be represented, i.e. the converted value falls out of range of the corresponding return type, the behavior is undefined.

1.5 示例

1.5.1 示例1

代碼如下在這里插入代碼片所示:

int main()
{printf("%d\n", atoi("123"));printf("%d\n", atoi("123a"));printf("%d\n", atoi("a123"));printf("%d\n", atoi(" 123"));printf("%d\n", atoi("1 23"));printf("%d\n", atoi("+123"));printf("%d\n", atoi("-123"));printf("%d\n", atoi("1.23"));printf("%d\n", atoi("2147483648"));return 0;
}

代碼運行結果如下圖所示:

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162486.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162486.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162486.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker部署paddleocr

內容僅供參考學習 歡迎朋友們V一起交流: zcxl7_7 環境 1. CentOS7 ?2. docker ?3. PaddleOCR2.5.2 1.準備 1. 首先準備好需要打包的項目 2. 在該項目中創建Dockerfile文件 touch Dockerfile2. 編寫Dockerfile # 從Python 3.8的官方鏡像中創建(pyt…

建立簡單的客戶端-服務端通信系統

本文介紹如何使用C編寫一個基本的客戶端-服務端通信系統。通過這個例子&#xff0c;你將學到如何建立TCP連接、發送和接收消息&#xff0c;以及如何處理多個客戶端連接。 客戶端代碼&#xff1a; #include <stdio.h> // 標準輸入輸出庫&#xff0c;提供基本的輸入…

matlab使用scatter函數畫圖時報錯“數組索引必須為正整數或邏輯值”解決辦法

一、背景 在使用matlab的scatter函數畫圖時報錯“數組索引必須為正整數或邏輯值”。 scatter函數說明&#xff1a;scatter(x,y) 在向量 x 和 y 指定的位置創建一個包含圓形標記的散點圖。 二、解決辦法 如果使用scatter函數時報上述錯誤&#xff0c;嘗試將連續函數先轉換為函…

ubuntu編譯sqlite3并使用

SQLite3是一種輕量級的關系型數據庫管理系統&#xff0c;它是在C語言基礎上實現的。SQLite3具有許多優點&#xff0c;例如&#xff1a; 1.靈活&#xff1a;它可以在多種操作系統上運行&#xff0c;并且可以將多個數據庫文件合并成一個文件。 2.易于使用&#xff1a;SQLite3使用…

基于爬行動物算法優化概率神經網絡PNN的分類預測 - 附代碼

基于爬行動物算法優化概率神經網絡PNN的分類預測 - 附代碼 文章目錄 基于爬行動物算法優化概率神經網絡PNN的分類預測 - 附代碼1.PNN網絡概述2.變壓器故障診街系統相關背景2.1 模型建立 3.基于爬行動物優化的PNN網絡5.測試結果6.參考文獻7.Matlab代碼 摘要&#xff1a;針對PNN神…

八股文面試day6

什么是代理&#xff1f;為什么要用動態代理&#xff1f; 代理模式大概意思是&#xff1a;為其他對象提供一個代理項或者是占位符&#xff0c;以控制對這個對象的訪問 代理模式核心思想&#xff1a;創建一個代理對象&#xff0c;在客戶端和目標對象之間的一個中介&#xff0c;…

35的程序員被辭了可以自己接外包啊?為什么都那么悲觀呢?

35的年紀&#xff0c;上有老下有小&#xff0c;即將步入中年危機&#xff0c;在這個節骨眼上被辭&#xff0c;能不悲觀嗎&#xff1f; 在這個年紀人們往往追求的是穩定的工作和生活&#xff0c;而進入一個自己不熟悉的行業并不是一個好的選擇。 況且&#xff0c;你認為的外包…

診斷0x27服務解密文件DLL制作與使用

DLL文件在CANoe的使用方法 DLL文件在診斷里面可以用在0x27秘鑰服務里面&#xff0c;對解密有幫助&#xff0c;在下圖位置加載。 DLL文件制作 vector公司本來就給了我們一個demo&#xff0c;先拷貝一份下來&#xff0c;別把原來的文件給改壞了。我這個是CANoe12&#xff0c;de…

Visio給立方體的每條邊填充不同的顏色,超好用的visio小技巧~

Visio給立方體的每條邊填充不同的顏色&#xff0c;超好用的visio小技巧~ 如何實現立方體的填充顏色從左邊的純色到右邊的多色呢&#xff1f;一起學起來吧~ 在visio中繪制一個普通的立方體&#xff1b; 用一個大的矩形蓋住剛才繪制的立方體&#xff1b; 全選之后找到 開發工具-&…

matplotlib

設置中文字體&#xff0c;圖片大小&#xff0c;分辨率&#xff0c;中文負號 符號 x軸和y軸 設置x軸和y軸的刻度 字體大小 線條樣式 繪制多個線條 圖例 顯示每個坐標值 gca 分辨率 畫布尺寸 創建圖形對象 不能直接使用區域對象作畫 繪制多子圖 均等的劃分畫布 柱狀圖 同一位置多…

Python 讀取2進制bin文件

pip下載hexdump pip install hexdump讀取bin文件 python -m hexdump xxx.bin

HTTP/HTTPS

HTTP/HTTPS 簡介 HTTP 協議是 Hyper Text Transfer Protocol&#xff08;超文本傳輸協議&#xff09;的縮寫&#xff0c;是用于從萬維網&#xff08; WWW:World Wide Web &#xff09;服務器傳輸超文本到本地瀏覽器的傳送協議。 HTTP 是一個基于 TCP/IP 通信協議來傳遞數據&a…

最新版車牌號正則效驗

支持最新版新能源、各類特種車等車牌號規則效驗 private static final Pattern pattern Pattern.compile("^([京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[a-zA-Z](([京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊AB…

類加載過程

Java類加載過程包括加載&#xff08;Loading&#xff09;、驗證&#xff08;Verification&#xff09;、準備&#xff08;Preparation&#xff09;、解析&#xff08;Resolution&#xff09;、初始化&#xff08;Initialization&#xff09;五個階段。這些階段是按照順序逐步執…

Javascript中的宏任務與微任務

事件循環 JavaScript 語言的一大特點就是單線程&#xff0c;也就是說&#xff0c;同一個時間只能做一件事。為了協調事件、用戶交互、腳本、UI 渲染和網絡處理等行為&#xff0c;防止主線程的不阻塞&#xff0c;Event Loop 的方案應用而生。Event Loop 包含兩類&#xff1a;一…

購買Zoho CRM系統要花多少錢?

相信對CRM系統有過了解的人都知道&#xff0c;CRM系統的價格取決于功能需求&#xff0c;用戶數量&#xff0c;部署方式&#xff0c;定制開發等因素。Zoho CRM是全球領先的云CRM系統&#xff0c;自2005年推出以來&#xff0c;累計服務25萬企業&#xff0c;那么Zoho CRM系統的價格…

python批量修改文件夾下的后綴名

python批量修改文件夾下的后綴名 &#xff08;所有的.txt結尾的文件&#xff0c;替換成.py結尾&#xff09; 1、需要將某個文件夾下所有的.txt結尾的文件&#xff0c;替換成.py結尾 2、Python代碼&#xff1a; import os# 指定需要更改文件的目錄 dir_path D:/study/py/4#…

Vatee萬騰數字引領未來:vatee科技力量的獨特路徑

在當今數字化浪潮的推動下&#xff0c;Vatee萬騰以其卓越的科技力量&#xff0c;正引領著未來的數字化時代&#xff0c;描繪著一條獨特的發展路徑。通過持續創新、前瞻思維和對技術的深度理解&#xff0c;Vatee萬騰正在為未來的科技發展創造新的可能性&#xff0c;塑造著數字引…

微信開放平臺Android平臺應用簽名怎么填寫

winR 輸入cmd 進到本地簽名文件的目錄下 輸入 keytool -list -v -keystore <keystore文件路徑> -alias <別名>請將 <keystore文件路徑> 替換為您的密鑰庫文件&#xff08;通常是 .jks 或 .keystore 文件&#xff09;的路徑&#xff0c;而 <別名> 則是…

Speaker Verification,聲紋驗證詳解——語音信號處理學習(九)

參考文獻&#xff1a; Speaker Verification嗶哩嗶哩bilibili 2020 年 3月 新番 李宏毅 人類語言處理 獨家筆記 聲紋識別 - 16 - 知乎 (zhihu.com) (2) Meta Learning – Metric-based (1/3) - YouTube 如何理解等錯誤率(EER, Equal Error Rate)&#xff1f;請不要只給定義 - 知…