方法一:
如果不更改字串,用LPCTSTR即可,e.g.:
CString strTest = "abcdefg";
char* pszTest = (LPCTSTR)strTest;
or :char* pszTest = (char*)(LPCTSTR)strTest; 方法二:
如果要更改字串,用GetBuffer()即可,e.g.:
CString strTest = "abcdefg";
char* pszTest = strTest.GetBuffer(strTest.GetLength());
strTest.ReleaseBuffer(); (此时用完后必须调ReleaseBuffer)
方法三:
使用 _tcscpy( char *strDestination, const char *strSource )也是可以的;
strDestination -- char *
strSource ---CString
方法四:
那就是sprintf了,要不memcpy也可以的。
CString 与char []之间的转换.
char str[100] = ”str”;
CString sstr = “sstr”;
str.Format(“%s”,str);
str = LPCTSTR sstr;
strcpy(str,(LPCTSTR)sstr);
如果是赋值,则要:
CString s(_T("This is a test "));
LPTSTR p = s.GetBuffer();
// 在这里添加使用p的代码
if(p != NULL) *p = _T('\0');
s.ReleaseBuffer();
// 使用完后及时释放,以便能使用其它的CString成员函数
str的值变了.