MFC程式變數型別之間的轉換

2021-10-05 13:09:59 字數 2887 閱讀 9891

本文主要介紹了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.轉換按資料長度增加的方向進行,以保證精度不降低...