1、string 转 CString
方法一
CString.format("%s", string.c_str());
方法二
char* pchar= string.c_str();
CString scstr(pchar);
2、char * 转 CString
CString.format("%s", char*);
3、char * 转 string
string s(char *);
4、string 转 char *
char *p = string.c_str();
5、CString 转 string
string s(CString.GetBuffer(CString.GetLength()));
6、CString 转 char *
charpoint=strtest.GetBuffer(strtest.GetLength());
注:不建议用(LPCTSTR)进行强制类型转化,这样strtest大小发生变化时会出现错误。
7、CString 转 char[100]
char a[100];
CString str("aaaaaa");
strncpy(a,(LPCTSTR)str,sizeof(a));
注:
1、string -> CString
CString.format("%s", string.c_str());
用c_str()确实比data()要好.
2、CString -> string
string s(CString.GetBuffer());
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.
3、有三个函数可以将字符串的内容转换为字符数组和CSstring
(1)data(),返回没有”/0“的字符串数组
(2)c_str(),返回有”/0“的字符串数组
(3)copy()
4、将字符转换为整数,可以使用atoi、_atoi64或atol。
5、将数字转换为CString变量,可以使用CString的Format函数
CString s;
int i = 64; s.Format("%d", i) Format函数的功能很强,值得你研究一下。
性能比较:
1、安全性>
CString > string > char*;
2、灵活性
CString > string >char*;
3、可移植性
char* = string > CString