網站首頁 編程語言 正文
當你用C++編碼時,經常會有這樣的時候,你會想把一種數據類型轉換為另一種。
在這篇文章中,你將看到兩種最流行的方法來學習如何在C++中把字符串轉換為整數。
讓我們開始吧!
C++中的數據類型
C++編程語言有一些內置的數據類型。
-
int
,用于整數(整數)(例如10,150)。 -
double
,用于浮點數(例如5.0,4.5)。 -
char
,用于單個字符(例如'D','!')。 -
string
, 一系列的字符(例如 "Hello")。 -
bool
,用于布爾值(真或假)。
C++是一種強類型的編程語言,這意味著當你創建一個變量時,你必須明確地聲明它將存儲什么類型的值。
如何在C++中聲明和初始化 int s
要在C++中聲明一個int
變量,你需要首先寫出該變量的數據類型--本例中是int
。這將讓編譯器知道該變量可以存儲什么類型的值,因此它可以采取什么行動。
接下來,你需要給變量一個名字。
最后,不要忘了用分號來結束語句。
#include <iostream> int main() { int age; }
然后,你可以給你創建的變量一個值,像這樣。
#include <iostream> int main() { int age; age = 28; }
你可以通過初始化變量和最后打印結果來組合這些動作,而不是作為單獨的步驟來做。
// 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
字符串是單個字符的集合。
在C++中聲明字符串的工作方式與聲明和初始化int
s非常相似,你在上面的章節中看到了這一點。
C++標準庫提供了一個string
類。為了使用字符串數據類型,你必須在文件的頂部,在#include <iostream>
之后,包括<string>
頭部庫。
在包括該頭文件之后,你還可以添加你之前看到的using namespace std;
。
在其他方面,加入這一行后,你在創建字符串變量時將不必使用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 }
或者你可以初始化一個字符串變量并將其打印到控制臺。
#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++是一種強類型的語言。
如果你試圖給出一個與數據類型不一致的值,你會得到一個錯誤。
另外,將字符串轉換為整數并不像使用類型轉換那樣簡單,你可以在將double
s轉換為int
s時使用。
例如,你不能這樣做。
#include <iostream> #include <string> using namespace std; int main() { string str = "7"; int num; num = (int) str; }
編譯后的錯誤將是。
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.
有幾種方法可以將字符串轉換為int,你會在后面的章節中看到其中兩種方法。
如何使用 stoi() 函數將字符串轉換為int
將字符串對象轉換為數字int的一個有效方法是使用stoi()
函數。
這種方法通常用于較新版本的C++,在C++11中被引入。
它將一個字符串值作為輸入,并將它的整數版本作為輸出返回。
#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 類將一個字符串轉換為一個int
stringstream
類主要用于早期版本的C++。它通過對字符串進行輸入和輸出來工作。
要使用它,你首先要在你的程序頂部加入sstream
庫,加入一行#include <sstream>
。
然后你添加stringstream
,并創建一個stringstream
對象,該對象將保存你要轉換為int的字符串的值,并在轉換為int的過程中使用。
你使用<<
操作符,從字符串變量中提取字符串。
最后,你使用>>
操作符將新轉換的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 }
總結
這就是你的成果!你已經看到了在C++中把字符串轉換為整數的兩種簡單方法。
原文鏈接:https://juejin.cn/post/7107142199829069855
相關推薦
- 2022-04-12 iOS?block的值捕獲與指針捕獲詳解_IOS
- 2022-10-20 Flutter?StreamBuilder實現局部刷新實例詳解_Android
- 2022-12-30 Python利用tkinter和socket實現端口掃描_python
- 2022-06-28 C#使用RestClient調用Web?API_C#教程
- 2022-08-03 Android開發手冊自定義Switch開關按鈕控件_Android
- 2022-04-20 C語言數據結構與算法之時間空間復雜度入門_C 語言
- 2022-06-12 C語言數據結構順序表的進階講解_C 語言
- 2022-05-08 Python?matplotlib實現散點圖的繪制_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支