请问如何将CString转换成char 请问如何将CString转换成char 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CString mystr; char mychar[100]; mystr="csdn"; AfxMessageBox(mystr); sprintf(mychar,"%s",mystr); AfxMessageBox(mychar); CString转化为char?CString::GetAt 这个返回一个 char如果是要char *可以用CString:Getbuffer 这个返回一个 char *其实还可以强制转化:LPCTSTR pch;CString str("123456");pch = (LPCTSTR)str; wdxp119() 的代码实际上就是先让系统执行了一次强制转化的结果,所以其实有点多此一举了…… CString str;char* c;c = (LPSTR)(LPCTSTR)str; 楼上的方法也可以,一般就GetBuffer(0)就OK了。 CString strchar* c;c = str.GetString();这样是否可以呢? CString str;char* c;c = (LPSTR)(LPCTSTR)str; char *pBuffer = (LPSTR)(LPCTSTR)str; 上面都对,更长采用char *pBuffer = (LPSTR)(LPCTSTR)str;方式 CString str;char szBuffer[100];str = "abcdefg";for (int i = 0; i < str.GetLength(); i++){ szBuffer[i] = str[i];} 回复人: pomelowu(羽战士) ( ) 信誉:124 2005-01-07 10:49:00 得分: 0 wdxp119() 的代码实际上就是先让系统执行了一次强制转化的结果,所以其实有点多此一举了……他这样做更安全一些,因为char *pBuffer = (LPSTR)(LPCTSTR)str;这样转换,只是让char指针指向了ctring的内存地址,如果对char进行了写操作的话,因为跨越了cstring的封装,有可能导致cstring对象的混乱,所以重新copy一个新的给char指针,可以做到更安全! 如果只读不写,用char *pBuffer = (LPSTR)(LPCTSTR)str;就够了! 简单一点就是char *pBuffer = (LPSTR)(LPCTSTR)str To ncucf(ncu晨风) 我没说清楚。因为前面鸟人已经指出来用GetBuffer了,所以我说wdxp119的代码多此一举。编辑GetBuffer获得的char *是安全的。记得要ReleaseBuffer 初学windows编程 不同对话框中的控件的如何对应?题目可能描述的不准确,帮看看 难题,怎么检测系统时间的改变或者调整 二进制如何转化为整形,整型如何转化为字符串? 有关于socks5的gss api的部分,请指教 如何获取系统信息? 如何让一个基于对话框的程序一启动就处于隐藏状态? 还是关于DataGrid的问题,我浏览了很多的帖子,都没有解决这个问题,不如大家一起讨论一下! 分层窗口,裁剪圆形,有锯齿问题。 两个MFC类实现多重继承,虚继承基类时候派生类的消息映射出错,求解决方法 请问如何最小化到系统托盘??? 如何取得声卡的声音???
char mychar[100];
mystr="csdn";
AfxMessageBox(mystr);
sprintf(mychar,"%s",mystr);
AfxMessageBox(mychar);
CString::GetAt 这个返回一个 char如果是要char *
可以用CString:Getbuffer 这个返回一个 char *
其实还可以强制转化:
LPCTSTR pch;
CString str("123456");
pch = (LPCTSTR)str;
char* c;
c = (LPSTR)(LPCTSTR)str;
char* c;
c = str.GetString();
这样是否可以呢?
char* c;
c = (LPSTR)(LPCTSTR)str;
char szBuffer[100];str = "abcdefg";for (int i = 0; i < str.GetLength(); i++)
{
szBuffer[i] = str[i];
}
wdxp119() 的代码实际上就是先让系统执行了一次强制转化的结果,所以其实有点多此一举了……他这样做更安全一些,因为char *pBuffer = (LPSTR)(LPCTSTR)str;这样转换,只是让char指针指向了ctring的内存地址,如果对char进行了写操作的话,因为跨越了cstring的封装,有可能导致cstring对象的混乱,所以重新copy一个新的给char指针,可以做到更安全! 如果只读不写,用char *pBuffer = (LPSTR)(LPCTSTR)str;就够了!
char *pBuffer = (LPSTR)(LPCTSTR)str
我没说清楚。因为前面鸟人已经指出来用GetBuffer了,所以我说wdxp119的代码多此一举。编辑GetBuffer获得的char *是安全的。记得要ReleaseBuffer