方法一:
如果不更改字串,用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也可以的。
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的值变了.
本文详细介绍了在C++中CString与char*之间的转换方法,包括直接转换、使用GetBuffer()、_tcscpy()及sprintf()等不同场景下的适用技术和注意事项。

被折叠的 条评论
为什么被折叠?



