天天看點

VC 字元串的互相轉換 CString 和 unsigned 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、char*、char[100]之間的轉換- - 

CString與int、char*、char[100]之間的轉換- - 

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 *,用操作符(unsigned char*)(LPCSTR)CString就可以了。 

CString轉換 unsigned char*

unsigned char*  a;

CString st("test");

a = (unsigned char *)(LPCSTR) st;

CString轉換 char[100] 

char a[100]; 

CString str("aaaaaa"); 

strncpy(a,(LPCTSTR)str,sizeof(a));

http://hsw625728.blog.163.com/blog/static/39570728200831043741857/

繼續閱讀