VC裏面的cstring跟int char*轉化

1 CString,int,string,char*之間的轉換 
string 轉 CString      :CString.format("%s", string.c_str()); 
char 轉 CString :     CString.format("%s", char*); 
char 轉 string :     string s(char *); 
string 轉 char * :     char *p = string.c_str(); 
CString 轉 string :     string s(CString.GetBuffer()); 
1,string -> CString 
CString.format("%s", string.c_str()); 
用c_str()確實比data()要好. 
2,char -> string 
string s(char *); 
你的只能初始化,在不是初始化的地方最好還是用assign(). 
3,CString -> string 
string s(CString.GetBuffer()); 
GetBuffer()後一定要ReleaseBuffer(),否則就沒有釋放緩衝區所佔的空間. 

《C++標準函數庫》中說的 
有三個函數可以將字符串的內容轉換爲字符數組和C—string 
1.data(),返回沒有”\0“的字符串數組 
2,c_str(),返回有”\0“的字符串數組 
3,copy() 

CString互轉int 
將字符轉換爲整數,可以使用atoi、_atoi64或atol。 
而將數字轉換爲CString變量,可以使用CString的Format函數。如 
CString s; 
int i = 64; 
s.Format("%d", i) 
Format函數的功能很強,值得你研究一下。 
void CStrDlg::OnButton1() 

// TODO: Add your control notification handler code here 
CString 
ss="1212.12"; 
int temp=atoi(ss); 
CString aa; 
aa.Format("%d",temp); 
AfxMessageBox("var is " + aa); 

sart.Format("%s",buf); 
CString互轉char* 
///char * TO cstring 
CString strtest; 
char * charpoint; 
charpoint="give string a value"; 
strtest=charpoint; 

///cstring TO char * 
charpoint=strtest.GetBuffer(strtest.GetLength()); 
標準C裏沒有string,char *==char []==string 
可以用CString.Format("%s",char *)這個方法來將char *轉成CString。要把CString轉成char *,用操作符(LPCSTR)CString就可以了。 

CString轉換 char[100] 
char a[100]; 
CString str("aaaaaa"); 
strncpy(a,(LPCTSTR)str,sizeof(a)); 
2 CString類型的轉換成int 
CString類型的轉換成int
 :      將字符轉換爲整數,可以使用atoi、_atoi64或atol。 
//CString aaa = "16" ; 
//int int_chage = atoi((lpcstr)aaa) ; 

而將數字轉換爲CString變量,可以使用CString的Format函數。如 
CString s; 
int i = 64; 
s.Format("%d", i) 
Format函數的功能很強,值得你研究一下。 
如果是使用char數組,也可以使用sprintf函數。 
//CString ss="1212.12"; 
//int temp=atoi(ss); 
//CString aa; 
//aa.Format("%d",temp); 

數字->字符串除了用CString::Format,還有FormatV、sprintf和不需要藉助於Afx的itoa 

3 char* 在裝int 
#include <stdlib.h> 

int atoi(const char *nptr); 
long atol(const char *nptr); 
long long atoll(const char *nptr); 
long long atoq(const char *nptr); 

4 CString,int,string,char*之間的轉換 
string aa("aaa"); 
char *c=aa.c_str(); 
cannot convert from 'const char *' to 'char *' 
const char *c=aa.c_str();


5 CString,int,string,char*之間的轉換 
string.c_str()只能轉換成const char *, 
要轉成char *這樣寫: 
string mngName; 
char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());

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