如果你用
的編譯器是基於最新的c++11
標準,那麼
這個問題就變
的很簡單,因為
<
string
>中
已經封裝好了對應的轉換方法:
標準庫中定義了to_string
(val
);可以將其它型別轉換為string。還定義了一組stoi(s,p,b)、stol(s,p,b)、stod(s,p,b)等轉換
函式,可以函式,可以分別轉化成int、long、double等.
stoi(s,p,b);stol(s,p,b);stoul(s,p,b);stoll(s,p,b);stoull(s,p,b);返回s的起始子串(表示整數內容的字串)的數值,返回值的型別分別為:int、long、unsigned long、long long、unsigned long long.其中b表示轉換所用的基數,預設為10(表示十進位制).p是size_t的指標,用來儲存s中第乙個非數值字元的下標,p預設為0,即函式不返回下標.
stof(s, p); stod(s, p); stold(s, p); 返回s的起始子串(表示浮點數內容)的數值,返回值的型別分別是float、double、long double.引數p的作用與整數轉換函式中的一樣。
vs2013下編譯通過
void testtypeconvert()
結果如下:
53.140000
12323456797a
123123
123.257
123.257
c++11標準之前沒有提供相應的方法可以呼叫,就得自己寫轉換方法了,**如下:
從其它型別轉換為string
,定義乙個模板類的方法。
從string
轉換為其它型別
,定義多個過載函式。
vs2010下編譯通過
#include templatestring converttostring(const t val)
int convertstringtoint(const string &s)
double convertstringtodouble(const string &s)
long convertstringtolong(const string &s)
void testconvert()
結果如下:
convert other type to string:
44.5
1253.14159
convert from string to other type:
1212.5
1234567
歡迎加入"
c/c++
夢之隊" 學習群:
226157456
基本型別與String 的轉換
我的作法是使用integer類,先用valueof將string轉換成integer值,然後再用intvalue將integer轉換成int,大致的 如下 string aa 66 int bb integer tempint tempint integer.valueof aa bb tempin...
String 引用型別與基本型別區別
string a a string b a string c new string a system.out.println a b true system.out.println a c false 我認為string a a 這種形式宣告的變數在比較的時候將會隱式呼叫equals方法,而new出...
變數與基本型別
c 定義了一套包括算術型別和空型別在內的基本資料型別。其中算術型別包含了字元,整型數,布林值和浮點數。空型別不對應具體的值 具體應用不知 內建型別的機器實現 計算機以位元序列儲存資料,每個位元非0即1。736424 0 0 1 1 1 0 1 1 736425 0 0 0 1 1 0 1 1 736...