在C++中把字符串轉(zhuǎn)換為整數(shù)的兩種簡單方法
當你用C++編碼時,經(jīng)常會有這樣的時候,你會想把一種數(shù)據(jù)類型轉(zhuǎn)換為另一種。
在這篇文章中,你將看到兩種最流行的方法來學(xué)習(xí)如何在C++中把字符串轉(zhuǎn)換為整數(shù)。
讓我們開始吧!
C++中的數(shù)據(jù)類型
C++編程語言有一些內(nèi)置的數(shù)據(jù)類型。
int,用于整數(shù)(整數(shù))(例如10,150)。double,用于浮點數(shù)(例如5.0,4.5)。char,用于單個字符(例如'D','!')。string, 一系列的字符(例如 "Hello")。bool,用于布爾值(真或假)。
C++是一種強類型的編程語言,這意味著當你創(chuàng)建一個變量時,你必須明確地聲明它將存儲什么類型的值。
如何在C++中聲明和初始化 int s
要在C++中聲明一個int 變量,你需要首先寫出該變量的數(shù)據(jù)類型--本例中是int 。這將讓編譯器知道該變量可以存儲什么類型的值,因此它可以采取什么行動。
接下來,你需要給變量一個名字。
最后,不要忘了用分號來結(jié)束語句。
#include <iostream>
int main() {
int age;
}
然后,你可以給你創(chuàng)建的變量一個值,像這樣。
#include <iostream>
int main() {
int age;
age = 28;
}
你可以通過初始化變量和最后打印結(jié)果來組合這些動作,而不是作為單獨的步驟來做。
// 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++中聲明字符串的工作方式與聲明和初始化ints非常相似,你在上面的章節(jié)中看到了這一點。
C++標準庫提供了一個string 類。為了使用字符串數(shù)據(jù)類型,你必須在文件的頂部,在#include <iostream> 之后,包括<string> 頭部庫。
在包括該頭文件之后,你還可以添加你之前看到的using namespace std; 。
在其他方面,加入這一行后,你在創(chuàng)建字符串變量時將不必使用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++是一種強類型的語言。
如果你試圖給出一個與數(shù)據(jù)類型不一致的值,你會得到一個錯誤。
另外,將字符串轉(zhuǎn)換為整數(shù)并不像使用類型轉(zhuǎn)換那樣簡單,你可以在將doubles轉(zhuǎn)換為ints時使用。
例如,你不能這樣做。
#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.
有幾種方法可以將字符串轉(zhuǎn)換為int,你會在后面的章節(jié)中看到其中兩種方法。
如何使用 stoi() 函數(shù)將字符串轉(zhuǎn)換為int
將字符串對象轉(zhuǎn)換為數(shù)字int的一個有效方法是使用stoi() 函數(shù)。
這種方法通常用于較新版本的C++,在C++11中被引入。
它將一個字符串值作為輸入,并將它的整數(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 類將一個字符串轉(zhuǎn)換為一個int
stringstream 類主要用于早期版本的C++。它通過對字符串進行輸入和輸出來工作。
要使用它,你首先要在你的程序頂部加入sstream 庫,加入一行#include <sstream> 。
然后你添加stringstream ,并創(chuàng)建一個stringstream 對象,該對象將保存你要轉(zhuǎn)換為int的字符串的值,并在轉(zhuǎn)換為int的過程中使用。
你使用<< 操作符,從字符串變量中提取字符串。
最后,你使用>> 操作符將新轉(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ù)的兩種簡單方法。
到此這篇關(guān)于在C++中把字符串轉(zhuǎn)換為整數(shù)的兩種簡單方法的文章就介紹到這了,更多相關(guān)C++ 字符串轉(zhuǎn)換為整數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C++實現(xiàn)utf8字符串和gbk字符串互轉(zhuǎn)
- C++實現(xiàn)判斷一個字符串是否為UTF8或GBK格式的方法
- C/C++實現(xiàn)數(shù)字與字符串互相轉(zhuǎn)換的多種方法
- C++中jsoncpp庫和nlohmann-json庫實現(xiàn)JSON與字符串類型轉(zhuǎn)換
- C++實現(xiàn)將長整型數(shù)轉(zhuǎn)換為字符串的示例代碼
- C++實現(xiàn)十六進制字符串轉(zhuǎn)換成int整形值的示例
- c++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)
- C++實現(xiàn)十六進制字符串轉(zhuǎn)換為十進制整數(shù)的方法
- C++中utf8字符串和gbk字符串的轉(zhuǎn)換方法
相關(guān)文章
C++ 容器適配器priority_queue的使用及實現(xiàn)代碼
這篇文章主要介紹了C++ 容器適配器priority_queue的使用及實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
c語言實現(xiàn)足球比賽積分統(tǒng)計系統(tǒng)
這篇文章主要為大家詳細介紹了c語言實現(xiàn)足球比賽積分統(tǒng)計系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
C++實現(xiàn)LeetCode(98.驗證二叉搜索樹)
這篇文章主要介紹了C++實現(xiàn)LeetCode(98.驗證二叉搜索樹),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07
用C語言求冪函數(shù)和指數(shù)函數(shù)的方法
這篇文章主要介紹了用C語言求冪函數(shù)和指數(shù)函數(shù)的方法,即pow()函數(shù)和sqrt()函數(shù)的使用,需要的朋友可以參考下2015-08-08

