CStrin与string快捷转换
CString->std::string
例子:
CString strMfc=“test“;
std::string strStl;
strStl=strMfc.GetBuffer(0);
std::string->CString
例子:
CString strMfc;
std::string strStl=“test“;
strMfc=strStl.c_str();
转换:
1、string转 CString
CString.format("%s", string.c_str());
2、char* 转 CString
CString.format("%s", char*);
3、char* 转 string
string s(char *);
4、string转 char *
char *p = string.c_str();
5、CString转 string
strings(CString.GetBuffer(CString.GetLength()));
6、CString转 char *
charpoint=strtest.GetBuffer(strtest.GetLength());
不建议用(LPCTSTR)进行强制类型转化,这样strtest大小发生变化时会出现错误。
7、CString转 char[100]
char a[100];
CStringstr("aaaaaa");
strncpy(a,(LPCTSTR)str,sizeof(a));
注意:
1、string-> CString
CString.format("%s", string.c_str());
用c_str()确实比data()要好.
2、CString-> string
strings(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