本文主要介紹了mfc程式之間變數型別之間的轉換,涉及到的變數型別有cstring,string,char*,int和float5種型別,首先進行變數的定義。
cstring cs;
string s;
char
* c =
newchar
[256];
int i;
float f;
1. cstring 轉化為 string
s =
ct2a
(cs)
;
2. cstring 轉化為 char*
nlength = cs.
getlength()
; nbytes =
widechartomultibyte
(cp_acp,
0, cs, nlength,
null,0
,null
,null);
c =newchar
[nbytes +1]
;memset
(c,0
, nlength +1)
;widechartomultibyte
(cp_oemcp,
0, cs, nlength, c, nbytes,
null
,null);
c[nbytes]=0
;
3. cstring 轉化為 int
i =
_wtoi
(cs)
;
4. cstring 轉化為 float
f =
_wtof
(cs)
;
1. string 轉化為 cstring
cs = s.
c_str()
;
2. char*轉化為 cstring
uses_conversion;
cs =
a2t(c)
;
3. int轉化為 cstring
cs.
format(_t
("%d"
), i)
;
4. float轉化為 cstring
cs.
format(_t
("%.2f"
), f)
;
1. string轉化為 char*
法一:
string str1 =
"world"
;const
char
* s9 = str1.
c_str()
;
法二:
string str2 =
"world2"
;char
* s2 =
(char
*)str2.
c_str()
;
2. string轉化為 int
i =
stoi
(s);
// string to int
3. string轉化為 float
f =
stof
(s);
// string to float
1. char*轉化為 string
s = c;
// 直接賦值
2. int轉化為 string
s =
to_string
(i);
3. float轉化為 string
s =
to_string
(f);
1. char*轉化為 int
i =
atoi
(c);
2. char*轉化為 float
f =
atof
(c);
1. int 轉化為 char*
sprintf
(c,"%d"
, i)
;
2. float轉化為 char*
sprintf
(c,"%.2f"
, f)
;
1. int轉化為 float
f =
float
(i);
1. float 轉化為 int
i =
int(f)
;
變數之間型別隱式轉換的坑
先問問自己,當初學c語言時,資料型別的轉換規則還記得嗎。一 強制轉換。如下面這種 int a 10 double b b double a 二 隱式轉換當運算子兩邊的資料型別不一致時,編譯器會主動進行資料型別轉換。轉換的規則是低型別像高型別轉換。隱式轉換方向如下圖所示。kmp演算法的坑 既然知道了資...
型別轉換 容器型別之間的轉換
強轉成字串,無非就是在原有的資料的基礎上兩邊套上引號 如果是字串,會把每乙個字元單獨的作為乙個元素放到列表中 如果是字典,只保留鍵,形成一套新的列表 如果是其他的容器,只是單純的在原有資料的基礎上換上 如果是字串,會把每乙個字元單獨的作為乙個元素放到元組中 如果是字典,只保留鍵,形成一套新的元組 如...
變數型別的轉換
變數型別的轉換 變數的資料型別是可以轉換的。轉換的方法有兩種,一種是自動轉換,一種是強制轉換。自動轉換 自動轉換發生在不同資料型別的量混合運算時,由編譯系統自動完成。自動轉換遵循以下規則 1.若參與運算量的型別不同 則先轉換成同一型別,然後進行運算。2.轉換按資料長度增加的方向進行,以保證精度不降低...