string 轉 long
那必須是萬年atoi(),不過得配合c_str()使用!
- #include <string>
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- int main ()
- {
- string a = "1234567890";
- long b = atoi(a.c_str());
- cout<<b<<endl;
- return 0;
- }
注意:atoi()在 stdlib.h
但是,這不是今天的重點!!!更加變態的方法,用String stream
- long stol(string str)
- {
- long result;
- istringstream is(str);
- is >> result;
- return result;
- }
long 轉 string
- string ltos(long l)
- {
- ostringstream os;
- os<<l;
- string result;
- istringstream is(os.str());
- is>>result;
- return result;
-
- }
太變態的string流
測試測試所有的基礎類型轉換
string 轉 int
- int stoi(string str)
- {
- int result;
- istringstream is(str);
- is >> result;
- return result;
- }
通過!
string 轉float
- float stof(string str)
- {
- float result;
- istringstream is(str);
- is >> result;
- return result;
- }
通過!
string 轉double
- double stod(string str)
- {
- double result;
- istringstream is(str);
- is >> result;
- return result;
- }
通過!
int 轉 string
- string itos(int i)
- {
- ostringstream os;
- os<<i;
- string result;
- istringstream is(os.str());
- is>>result;
- return result;
-
- }
通過!
float 轉 string
- string ftos(float f)
- {
- ostringstream os;
- os<<f;
- string result;
- istringstream is(os.str());
- is>>result;
- return result;
-
- }
通過!
double 轉 string
- string dtos(double d)
- {
- ostringstream os;
- os<<d;
- string result;
- istringstream is(os.str());
- is>>result;
- return result;
-
- }
通過!
* 轉string
- string *tos(* i) //改一下函數名,改一下類型,搞定
- {
- ostringstream os;
- os<<i;
- string result;
- istringstream is(os.str());
- is>>result;
- return result;
-
- }
將*換成想要的類型就可以執行 *轉string
string 轉 *
- * sto*(string str) //改一下函數名,變量類型,搞定
- {
- * result;
- istringstream is(str);
- is >> result;
- return result;
- }
將*換成想要的類型就可以執行 string轉*
也可以重載函數,達到萬能函數轉換
這些測試完全是自己不想寫項目,偷懶寫點文章安慰自己!囧~
記得包含頭文件#include <sstream>
總結:使用string 流和標准io流其實本身就是流,一個原理的,不同調用方法。
粗制濫造,歡迎斧正