表明數字的string如何轉化爲對應的數字?使用 atoi()
函數。下面是具體寫法:ios
#include <iostream> #include <stdlib.h> //atoi和atof對應的頭文件 #include <string> using namespace std; int main(){ string a = "5"; cout << atoi(a.c_str()) << endl; //輸出結果爲 5 return 0; }
上面的例子只是給出了一個最基本的狀況,即咱們須要轉化的string是一個整數。函數
通常的,咱們可能會但願對一些表明浮點數的字符串進行轉化,這時能夠用和atoi()
長得很相似的一個函數atof()
。spa
這兩個函數均可以處理浮點數型的string,然而結果可能不一樣,具體結果以下所示。code
#include <iostream> #include <stdlib.h> #include <typeinfo> #include <string> using namespace std; int main(){ string a = "5"; string b = "5.0"; string c = "5.5"; cout << atoi(a.c_str()) << endl; cout << atoi(b.c_str()) << endl; cout << atoi(c.c_str()) << endl; cout << atof(a.c_str()) << endl; cout << atof(b.c_str()) << endl; cout << atof(c.c_str()) << endl; cout << typeid(atoi(a.c_str())).name() << endl; cout << typeid(atoi(b.c_str())).name() << endl; cout << typeid(atoi(c.c_str())).name() << endl; cout << typeid(atof(a.c_str())).name() << endl; cout << typeid(atof(b.c_str())).name() << endl; cout << typeid(atof(c.c_str())).name() << endl; return 0; }
輸出結果以下:blog
能夠注意到:字符串
對於atoi()
函數來講,不論輸入的string是不是一個浮點數,都會將小數點以後的抹去,輸出一個整數;而對於atof()
函數來講,若是是5.0
這樣的數,也自動會將小數點及後面的0消去。string
儘管你可能會擔憂atof()
這個自動消去.0的操做會將輸出的數字變爲一個整型數,然而事實上,經過typeid()
查看輸出類型可知,atoi()
輸出的必定是int型的數據,而atof()
輸出的必定是double型的數據。io