天天看點

C++中stoi(),atoi() ,to_string()使用技巧

引言

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才有的,在寫一些算法題目時會有幫助,但是在做項目時不太建議使用;

繼續閱讀