網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
當(dāng)你用C++編碼時(shí),經(jīng)常會(huì)有這樣的時(shí)候,你會(huì)想把一種數(shù)據(jù)類型轉(zhuǎn)換為另一種。
在這篇文章中,你將看到兩種最流行的方法來(lái)學(xué)習(xí)如何在C++中把字符串轉(zhuǎn)換為整數(shù)。
讓我們開始吧!
C++中的數(shù)據(jù)類型
C++編程語(yǔ)言有一些內(nèi)置的數(shù)據(jù)類型。
-
int
,用于整數(shù)(整數(shù))(例如10,150)。 -
double
,用于浮點(diǎn)數(shù)(例如5.0,4.5)。 -
char
,用于單個(gè)字符(例如'D','!')。 -
string
, 一系列的字符(例如 "Hello")。 -
bool
,用于布爾值(真或假)。
C++是一種強(qiáng)類型的編程語(yǔ)言,這意味著當(dāng)你創(chuàng)建一個(gè)變量時(shí),你必須明確地聲明它將存儲(chǔ)什么類型的值。
如何在C++中聲明和初始化 int s
要在C++中聲明一個(gè)int
變量,你需要首先寫出該變量的數(shù)據(jù)類型--本例中是int
。這將讓編譯器知道該變量可以存儲(chǔ)什么類型的值,因此它可以采取什么行動(dòng)。
接下來(lái),你需要給變量一個(gè)名字。
最后,不要忘了用分號(hào)來(lái)結(jié)束語(yǔ)句。
#include <iostream> int main() { int age; }
然后,你可以給你創(chuàng)建的變量一個(gè)值,像這樣。
#include <iostream> int main() { int age; age = 28; }
你可以通過(guò)初始化變量和最后打印結(jié)果來(lái)組合這些動(dòng)作,而不是作為單獨(dú)的步驟來(lái)做。
// a header file that enables the use of functions for outputing information //e.g. cout or inputing information e.g. cin #include <iostream> // a namespace statement; you won't have to use the std:: prefix using namespace std; int main() { // start of main function of the program int age = 28; // initialize a variable. //Initializing is providing the type,name and value of the varibale in one go. // output to the console: "My age is 28",using chaining, << cout << "My age is: " << age << endl; }// end the main function
如何在C++中聲明和初始化 string s
字符串是單個(gè)字符的集合。
在C++中聲明字符串的工作方式與聲明和初始化int
s非常相似,你在上面的章節(jié)中看到了這一點(diǎn)。
C++標(biāo)準(zhǔn)庫(kù)提供了一個(gè)string
類。為了使用字符串?dāng)?shù)據(jù)類型,你必須在文件的頂部,在#include <iostream>
之后,包括<string>
頭部庫(kù)。
在包括該頭文件之后,你還可以添加你之前看到的using namespace std;
。
在其他方面,加入這一行后,你在創(chuàng)建字符串變量時(shí)將不必使用std::string
,只需使用string
。
#include <iostream> #include <string> using namespace std; int main() { //declare a string variable string greeting; greeting = "Hello"; //the `=` is the assignment operator,assigning the value to the variable }
或者你可以初始化一個(gè)字符串變量并將其打印到控制臺(tái)。
#include <iostream> #include <string> using namespace std; int main() { //initialize a string variable string greeting = "Hello"; //output "Hello" to the console cout << greeting << endl; }
如前所述,C++是一種強(qiáng)類型的語(yǔ)言。
如果你試圖給出一個(gè)與數(shù)據(jù)類型不一致的值,你會(huì)得到一個(gè)錯(cuò)誤。
另外,將字符串轉(zhuǎn)換為整數(shù)并不像使用類型轉(zhuǎn)換那樣簡(jiǎn)單,你可以在將double
s轉(zhuǎn)換為int
s時(shí)使用。
例如,你不能這樣做。
#include <iostream> #include <string> using namespace std; int main() { string str = "7"; int num; num = (int) str; }
編譯后的錯(cuò)誤將是。
hellp.cpp:9:10: error: no matching conversion for C-style cast from 'std::__1::string' (aka
? ? ? 'basic_string<char, char_traits<char>, allocator<char> >') to 'int'
? ?num = (int) str;
? ? ? ? ?^~~~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:875:5: note: candidate function
? ? operator __self_view() const _NOEXCEPT { return __self_view(data(), size()); }
? ? ^
1 error generated.
有幾種方法可以將字符串轉(zhuǎn)換為int,你會(huì)在后面的章節(jié)中看到其中兩種方法。
如何使用 stoi() 函數(shù)將字符串轉(zhuǎn)換為int
將字符串對(duì)象轉(zhuǎn)換為數(shù)字int的一個(gè)有效方法是使用stoi()
函數(shù)。
這種方法通常用于較新版本的C++,在C++11中被引入。
它將一個(gè)字符串值作為輸入,并將它的整數(shù)版本作為輸出返回。
#include <iostream> #include <string> using namespace std; int main() { // a string variable named str string str = "7"; //print to the console cout << "I am a string " << str << endl; //convert the string str variable to have an int value //place the new value in a new variable that holds int values, named num int num = stoi(str); //print to the console cout << "I am an int " << num << endl; }
輸出。
I am a string 7
I am an int 7
如何使用stringstream 類將一個(gè)字符串轉(zhuǎn)換為一個(gè)int
stringstream
類主要用于早期版本的C++。它通過(guò)對(duì)字符串進(jìn)行輸入和輸出來(lái)工作。
要使用它,你首先要在你的程序頂部加入sstream
庫(kù),加入一行#include <sstream>
。
然后你添加stringstream
,并創(chuàng)建一個(gè)stringstream
對(duì)象,該對(duì)象將保存你要轉(zhuǎn)換為int的字符串的值,并在轉(zhuǎn)換為int的過(guò)程中使用。
你使用<<
操作符,從字符串變量中提取字符串。
最后,你使用>>
操作符將新轉(zhuǎn)換的int值輸入到int變量中。
#include <iostream> #include <string> #include <sstream> // this will allow you to use stringstream in your program using namespace std; int main() { //create a stringstream object, to input/output strings stringstream ss; // a variable named str, that is of string data type string str = "7"; // a variable named num, that is of int data type int num; //extract the string from the str variable (input the string in the stream) ss << str; // place the converted value to the int variable ss >> num; //print to the consloe cout << num << endl; // prints the intiger value 7 }
總結(jié)
這就是你的成果!你已經(jīng)看到了在C++中把字符串轉(zhuǎn)換為整數(shù)的兩種簡(jiǎn)單方法。
原文鏈接:https://juejin.cn/post/7107142199829069855
相關(guān)推薦
- 2022-09-14 Gstreamer基礎(chǔ)知識(shí)教程_C 語(yǔ)言
- 2022-07-09 Jquery使用AJAX方法請(qǐng)求數(shù)據(jù)_jquery
- 2024-02-16 SpringBoot 全局異常處理
- 2023-01-08 利用Qt實(shí)現(xiàn)獲取計(jì)算機(jī)的硬件信息_C 語(yǔ)言
- 2023-12-14 excel統(tǒng)計(jì)某個(gè)字符出現(xiàn)的次數(shù),判斷某單元格的數(shù)據(jù)是否在另外一列
- 2023-02-15 PyQt5頁(yè)面跳轉(zhuǎn)問(wèn)題及解決方式_python
- 2022-11-25 ASP.NET?MVC使用異步Action的方法_實(shí)用技巧
- 2022-07-14 C++實(shí)現(xiàn)一個(gè)簡(jiǎn)單的線程池的示例代碼_C 語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支