C++中常見類型轉換

C++(MFC)中的常見類型轉換

1.string 和 CString間的轉換。

string 轉 CString

string str = "Hello World";
CString cStr;
cStr = str.c_str();//c_str()生成以'\0'結尾的字符串

CString 轉 string

CString  cStr = "Hello World";
string str;
str = cStr.getBuffer(0);//爲一個CString字符串重新獲得其緩衝區內容

2.char*、const char* 和 string間的轉換。

string 轉 const char*

string str = "Hello World";
const char* cChar = str.c_str();//利用c_str()

const char* 轉 string

const char* cChar = "Hello World";
string str = cChar;//直接賦值即可

const char* 轉 char*

const char* cChar = "Hello World";
char* mChar = const_cast<char*>(cChar);//利用const_cast<>

char* 轉 const char*

char* mChar = "Hello World";
const char* cChar = mChar;//直接賦值

string 轉 char*

string str = "Hello World";
char* mChar = const_cast<char*>(str.c_str());//兩次變換

char* 轉 string

char* mChar = "Hello World";
string str = mChar;//直接賦值

3.string 和 int間的轉換。

string 轉 int

string str = "0";
int num = atoi(str.c_str());//利用atoi

int 轉 string

int num = 0;
stringstream ss;
ss << num ;
string str = ss.str(); //利用數據流

#針對其他數據類型轉換string,參考 Mike_Zhang提供的模板類

/*
convert other data to string
usage :
    string str = m_toStr<int>(12345);
*/
template <class T> string m_toStr(T tmp)
{
    stringstream ss;
    ss << tmp;
    return ss.str();
}


int轉string時,習慣先將int轉爲char[]

char charStr[8];
int num = 521;
itoa(num, charStr, 10);//利用itoa
string str = charStr;




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章