首页
/
每日頭條
/
科技
/
c語言怎麼将字符串轉成數字
c語言怎麼将字符串轉成數字
更新时间:2025-12-16 13:39:11

通常,或更具體地說,在競争性編程中,有許多情況需要将數字轉換為字符串或将字符串轉換為數字。但是缺乏某些必不可少的工具的知識使我們不得不這樣做。本文介紹了一些實現此任務的方法。

c語言怎麼将字符串轉成數字(CC編程筆記)1

将字符串轉換為數字

方法1使用stringstream類或sscanf()

stringstream():這是将數字字符串轉換為int,float或Double的簡單方法。以下是使用stringstream将字符串轉換為int的示例程序。

c語言怎麼将字符串轉成數字(CC編程筆記)2

輸出:x的值:12345

stringstream是一種操作字符串的便捷方法。

sscanf() 是類似于scanf()的C樣式函數。它從字符串而不是标準輸入中讀取輸入。

c語言怎麼将字符串轉成數字(CC編程筆記)3

輸出:x的值:12345

同樣,我們可以分别使用%f和%lf讀取float和double。

方法2使用stoi()或atoi()進行字符串轉換.

stoi(): stoi()函數将字符串作為參數并返回其值。以下是一個簡單的實現:

c語言怎麼将字符串轉成數字(CC編程筆記)4

輸出:

stoi(“ 45”)是45

stoi(“ 3.14159”)是3

stoi(“ 31337 geek”)是31337

atoi(): atoi()函數将字符數組或字符串文字作為參數并返回其值。以下是一個簡單的實現:

c語言怎麼将字符串轉成數字(CC編程筆記)5

輸出:

atoi(“ 42”)是42

atoi(“ 3.14159”)是3

atoi(“ 31337 geek”)是31337

stoi()與atoi()

atoi()是舊的C樣式函數。在C 11中添加了stoi()。

atoi()僅适用于C風格的字符串(字符數組和字符串文字),stoi()适用于C 字符串和C風格的字符串

atoi()僅接受一個參數并返回整數值。

int atoi(con​st char * str);

stoi()最多可以包含三個參數,第二個參數用于起始索引,第三個參數用于輸入數字的基數。

int stoi(con​​st string&str,size_t * index = 0,int base = 10);

類似地,為了将String轉換為Double,可以使用atof()。上面的函數返回轉換後的整數作為int值。如果無法執行有效的轉換,它将返回零。

方法3:使用boost詞彙表轉換

Boost庫提供了一個内置函數“ lexical_cast(“ string”)”,該函數直接将字符串轉換為數字。如果輸入無效,則返回異常“ bad_lexical_cast”。

c語言怎麼将字符串轉成數字(CC編程筆記)6

輸出:

轉換後的浮點值為:6.5

轉換後的int值為:5

将數字轉換為字符串

方法1:使用字符串流

在此方法中,字符串流聲明一個流對象,該對象首先将數字作為流插入對象,然後使用“ str()”跟随數字到字符串的内部轉換。

c語言怎麼将字符串轉成數字(CC編程筆記)7

輸出:

從數字重新形成的字符串是:2016

方法2:使用to_string()

此函數接受一個數字(可以是任何數據類型),并以所需的字符串形式返回該數字。

實現方式:

c語言怎麼将字符串轉成數字(CC編程筆記)8

輸出:

字符串中的整數是:20字符串中的浮點數是:30.500000

方法3:使用boost lexical cast

類似于字符串轉換,“ lexical_cast()”函數保持不變,但是這次參數列表修改為“ lexical_cast(numeric_var)”。

c語言怎麼将字符串轉成數字(CC編程筆記)9

輸出:

字符串中的浮點值為:10.5

字符串中的int值是:17

本期的知識分享就到這裡了,希望對大家有幫助~

另外如果你想更好地提升你的編程能力,學好C語言C 編程!彎道超車,快人一步!筆者這裡或許可以幫到你~

編程學習書籍分享:

c語言怎麼将字符串轉成數字(CC編程筆記)10

編程學習視頻分享:

c語言怎麼将字符串轉成數字(CC編程筆記)11

分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比自己琢磨更快哦!

C語言C 編程學習交流圈子,點擊下方【了解更多】獲取更多學習資料幫助你學習成長哦~

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
基因檢測新趨勢
基因檢測新趨勢
基因檢測新趨勢?來源:光明日報【科技改變生活】,今天小編就來聊一聊關于基因檢測新趨勢?接下來我們就一起去研究一下吧!基因檢測新趨勢來源:光明日報【科技改變生活】從定性檢測到定量檢測,基因檢測技術的進步,讓腫瘤患者的靶向用藥越來越精準,甚至可...
2025-12-16
自來水要開戶嗎
自來水要開戶嗎
人民網武漢11月28日電(郭婷婷)交房已五年的商品房小區,上千戶居民自來水沒法在專供部門(自來水公司)開立戶頭。近日,來自湖北黃岡紅安縣的網友向人民網“領導留言闆”反映,所在小區存在自來水開戶難、消防設施不規範、架空層改造出售等問題。對此,...
2025-12-16
華為和蘋果到底怎麼選擇
華為和蘋果到底怎麼選擇
很多人正在糾結手機選擇華為還是蘋果,這兩個品牌我使用了多年,作為用戶談談我的真實體驗。我的第一塊華為手機是2018年上市的華為P20Pro,這款手機當年上市的價格為五千多元,這個價位放到現在來看也屬于高端機了。2021年我購入了蘋果12,價...
2025-12-16
健康證辦不下來會得到通知嗎
健康證辦不下來會得到通知嗎
錢江晚報·小時新聞記者施雯通訊員譚琴高曉玲近年來,杭州餘杭區依托一體化智能化公共數據平台,不斷保障和改善民生,在推動餘杭經濟社會高質量發展之路上收獲滿滿。“真的太方便了,我手機預約辦理健康證,預約當天即可直接體檢,不僅體檢免費,後續也不用再...
2025-12-16
如何開啟筆記本的投屏
如何開啟筆記本的投屏
記得幾年前,人們将筆記本連接電視,更多還是采用HDMI線,但現在則很少有人喜歡這種麻煩的操作了,很多時候投屏可能更方便。但問題也來了,就是投屏設置的麻煩,不同電視連接協議不同,也讓很多人吃不消。那麼,作為2021年的新銳筆記本,是否克服了投...
2025-12-16
Copyright 2023-2025 - www.tftnews.com All Rights Reserved