引言
stoi(),atoi() ,to_string 這三個函數都是對字元串處理的函數,前兩者是将字元串轉化為十進制 int 類型,最後一個是将十進制類型 int、double 等轉化為string,下面就簡單介紹一下;
頭檔案都是:#include<cstring>
stoi() 和 atoi()
這兩個功能雖然都是将字元串轉化為 int 類型,但是還是有差別的,
stoi 的參數是 const string* 類型
atoi 的參數是 const char* 類型
stoi() 會對轉化後的數進行檢查,判斷是否會超出 int 範圍,如果超出範圍就會報錯;
atoi() 不會對轉化後的數進行檢查,超出上界,輸出上界,超出下界,輸出下界;
還有一點,如果使用 atoi 對字元串 string 進行轉化的話,就需要 c_str() 函數将 const string* 類型 轉化為 cons char* 類型
測試代碼:
#include<iostream>
#include<cstring>
using namespace std;
int main() {
string s = "12345";
int num1 = stoi(s);
int num2 = atoi(s.c_str());// 轉化為const char*
cout << num1 << endl << num2 << endl;
return 0;
}
這個案例最後輸出都是 12345;
通過代碼來熟悉一下這幾個函數的調用方法;
to_string()
功能:将數字常量(int,double,long等)轉換為字元串(string),傳回轉換好的字元串
這個就沒有那麼多注意的地方了,記住功能和使用方法就可以了;
#include<iostream>
#include<cstring>
using namespace std;
int main() {
int num = 123456789;
string s = to_string(num);
cout << s << endl;
return 0;
}
輸出是字元串123456789;
總結
這幾個函數是C++11才有的,在寫一些算法題目時會有幫助,但是在做項目時不太建議使用;