二維碼
微世推網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 快報(bào)資訊 » 今日快報(bào) » 正文

C/C+編程筆記_如何將字符串轉(zhuǎn)換為數(shù)字_數(shù)字轉(zhuǎn)換為

放大字體  縮小字體 發(fā)布日期:2023-05-07 14:59:55    作者:尚趙晴    瀏覽次數(shù):356
導(dǎo)讀

通常,或更具體地說,在競爭性敬請關(guān)注程中,有許多情況需要將數(shù)字轉(zhuǎn)換為字符串或?qū)⒆址D(zhuǎn)換為數(shù)字。但是缺乏某些必不可少得工具得知識(shí)使我們不的不這樣做。本文介紹了一些實(shí)現(xiàn)此任務(wù)得方法。將字符串轉(zhuǎn)換為數(shù)字方

通常,或更具體地說,在競爭性敬請關(guān)注程中,有許多情況需要將數(shù)字轉(zhuǎn)換為字符串或?qū)⒆址D(zhuǎn)換為數(shù)字。但是缺乏某些必不可少得工具得知識(shí)使我們不的不這樣做。本文介紹了一些實(shí)現(xiàn)此任務(wù)得方法。

將字符串轉(zhuǎn)換為數(shù)字

方法1:使用stringstream類或sscanf()

stringstream():這是將數(shù)字字符串轉(zhuǎn)換為int,float或double得簡單方法。以下是使用stringstream將字符串轉(zhuǎn)換為int得示例程序。

輸出:x得值:12345

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

sscanf() 是類似于scanf()得C樣式函數(shù)。它從字符串而不是標(biāo)準(zhǔn)輸入中讀取輸入。

輸出:x得值:12345

同樣,我們專業(yè)分別使用%f和%lf讀取float和double。

方法2:使用stoi()或atoi()進(jìn)行字符串轉(zhuǎn)換.

stoi(): stoi()函數(shù)將字符串作為參數(shù)并返回其值。以下是一個(gè)簡單得實(shí)現(xiàn):

輸出:

stoi(“ 45”)是45

stoi(“ 3.14159”)是3

stoi(“ 31337 geek”)是31337

atoi(): atoi()函數(shù)將字符數(shù)組或字符串文字作為參數(shù)并返回其值。以下是一個(gè)簡單得實(shí)現(xiàn):

輸出:

atoi(“ 42”)是42

atoi(“ 3.14159”)是3

atoi(“ 31337 geek”)是31337

stoi()與atoi()

atoi()是舊得C樣式函數(shù)。在C ++ 11中添加了stoi()。

atoi()僅適用于C風(fēng)格得字符串(字符數(shù)組和字符串文字),stoi()適用于C ++字符串和C風(fēng)格得字符串

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

int atoi(con?st char gov str);

stoi()最多專業(yè)包含三個(gè)參數(shù),第二個(gè)參數(shù)用于起始索引,第三個(gè)參數(shù)用于輸入數(shù)字得基數(shù)。

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

類似地,猥瑣將String轉(zhuǎn)換為Double,專業(yè)使用atof()。上面得函數(shù)返回轉(zhuǎn)換后得整數(shù)作為int值。如果無法執(zhí)行有效得轉(zhuǎn)換,它將返回零。

方法3:使用boost詞匯表轉(zhuǎn)換

Boost庫提供了一個(gè)內(nèi)置函數(shù)“ lexical_cast(“ string”)”,該函數(shù)直接將字符串轉(zhuǎn)換為數(shù)字。如果輸入無效,則返回異?!?bad_lexical_cast”。

輸出:

轉(zhuǎn)換后得浮點(diǎn)值為:6.5

轉(zhuǎn)換后得int值為:5

將數(shù)字轉(zhuǎn)換為字符串

方法1:使用字符串流

在此方法中,字符串流聲明一個(gè)流對象,該對象首先將數(shù)字作為流插入對象,然后使用“ str()”跟隨數(shù)字到字符串得內(nèi)部轉(zhuǎn)換。

輸出:

從數(shù)字重新形成得字符串是:2016

方法2:使用to_string()

此函數(shù)接受一個(gè)數(shù)字(專業(yè)是任何數(shù)據(jù)類型),并以所需得字符串形式返回該數(shù)字。

實(shí)現(xiàn)方式:

輸出:

字符串中得整數(shù)是:20字符串中得浮點(diǎn)數(shù)是:30.500000

方法3:使用boost lexical cast

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

輸出:

字符串中得浮點(diǎn)值為:10.5

字符串中得int值是:17

本期得知識(shí)分享就到這里了,希望對大家有輔助~

另外如果你想更好地提升你得敬請關(guān)注程能力,學(xué)好C語言C++敬請關(guān)注程!彎道超車,快人一步!筆者這里或許專業(yè)幫到你~

敬請關(guān)注程學(xué)習(xí)書籍分享:

敬請關(guān)注程學(xué)習(xí)視頻分享:

分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)敬請關(guān)注程得伙伴,利用更多得資料學(xué)習(xí)成長比官網(wǎng)琢磨更快哦!

C語言C++敬請關(guān)注程學(xué)習(xí)交流圈子,點(diǎn)擊下方【了解更多】獲取更多學(xué)習(xí)資料輔助你學(xué)習(xí)成長哦~

 
(文/尚趙晴)
免責(zé)聲明
本文為尚趙晴原創(chuàng)作品?作者: 尚趙晴。歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明原文出處:http://nyqrr.cn/kbzx/show-121021.html 。本文僅代表作者個(gè)人觀點(diǎn),本站未對其內(nèi)容進(jìn)行核實(shí),請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,作者需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時(shí)聯(lián)系我們郵件:weilaitui@qq.com。
 

Copyright?2015-2023 粵公網(wǎng)安備 44030702000869號(hào)

粵ICP備16078936號(hào)

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

24在線QQ: 770665880

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號(hào): weishitui

韓瑞 小英 張澤

工作時(shí)間:

周一至周五: 08:00 - 24:00

反饋

用戶
反饋