如何将CString转换为char[] http://www.csdn.net/Develop/Read_Article.asp?id=12365去看上面的东西。。char* p=(LPSTR)(LPCTSTR) str; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 定义了char* aa的变量,现在有一个CString的变量bb,怎样把bb的值赋给aa呢? 回复人: ydogg(灰毛兔) (2001-8-10 12:27:23) 得0分 1.aa=bb.GetBuffer(bb.GetLenth());//第一种方法2.aa= (LPSTR)(LPCTSTR)bb; //第二种方法 回复人: zhizhi() (2001-8-10 13:16:23) 得0分 aa= (char *)(LPCTSTR)bb,hehe CString::GetBuffer Returns a pointer to the internal character buffer for the CString object. 不好CString str = ".....";int nSize = str.GetLength()+1;char * p = new char[nSize];memset(p,0, nSize * sizeof(char));strcpy(p,str); 我也贴一个:其它数据类型转换为字符串1。短整型(int)itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制itoa(i,temp,2); ///按二进制方式转换 2。长整型(long)ltoa(l,temp,10); 3。浮点数(float,double)用fcvt可以完成转换,这是MSDN中的例子:int decimal, sign; char *buffer; double source = 3.1415926535; buffer = _fcvt( source, 7, &decimal, &sign ); 运行结果:source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0decimal表示小数点的位置,sign表示符号:0为正数,1为负数 4。CString变量str = "2008北京奥运";buf = (LPSTR)(LPCTSTR)str; 5。BSTR变量BSTR bstrValue = ::SysAllocString(L"程序员"); char * buf = _com_util::ConvertBSTRToString(bstrValue); SysFreeString(bstrValue); AfxMessageBox(buf); delete(buf); 6。CComBSTR变量CComBSTR bstrVar("test"); char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str); AfxMessageBox(buf); delete(buf); 7。_bstr_t变量_bstr_t类型是对BSTR的封装,因为已经重载了=操作符,所以很容易使用_bstr_t bstrVar("test"); const char *buf = bstrVar;///不要修改buf中的内容 AfxMessageBox(buf); 8。通用方法(针对非COM数据类型)用sprintf完成转换char buffer[200];char c = '1';int i = 35;long j = 1000;float f = 1.7320534f;sprintf( buffer, "%c",c);sprintf( buffer, "%d",i);sprintf( buffer, "%d",j);sprintf( buffer, "%f",f);(是转载)你的问题可以用4。 nano_2002(飞天外) : 好贴。谢谢 WSARecv投递失败 WSAGetLastError()得到错误代码 6,调试两天了还是找不到错在哪 怎样在主框架中画一个菜单???急 外部调用对dll对话框初始化问题 请问这是什么: Run-Time Check Failure #0 请问,多线程的问题 请教几个COM问题 异想天开!怎样实现一个一直展开的,能固定在对话框某一位置的弹出式菜单? 关于VC socket的问题 关于局域网访问方面的一些问题,请大家帮忙想一想,你应该会感兴趣的(100分是底分,结账时会视回答情况加分) 讨论讨论 MFC和VCL 五一是在家写程序,还是出去现呢?! 如何提高自己的编程能力!
1.aa=bb.GetBuffer(bb.GetLenth());//第一种方法
2.aa= (LPSTR)(LPCTSTR)bb; //第二种方法
回复人: zhizhi() (2001-8-10 13:16:23) 得0分
aa= (char *)(LPCTSTR)bb,hehe
Returns a pointer to the internal character buffer for the CString object. 不好CString str = ".....";
int nSize = str.GetLength()+1;
char * p = new char[nSize];
memset(p,0, nSize * sizeof(char));strcpy(p,str);
itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制
itoa(i,temp,2); ///按二进制方式转换
2。长整型(long)
ltoa(l,temp,10);
3。浮点数(float,double)
用fcvt可以完成转换,这是MSDN中的例子:
int decimal, sign;
char *buffer;
double source = 3.1415926535;
buffer = _fcvt( source, 7, &decimal, &sign );
运行结果:source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0
decimal表示小数点的位置,sign表示符号:0为正数,1为负数
4。CString变量
str = "2008北京奥运";
buf = (LPSTR)(LPCTSTR)str;
5。BSTR变量
BSTR bstrValue = ::SysAllocString(L"程序员");
char * buf = _com_util::ConvertBSTRToString(bstrValue);
SysFreeString(bstrValue);
AfxMessageBox(buf);
delete(buf);
6。CComBSTR变量
CComBSTR bstrVar("test");
char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str);
AfxMessageBox(buf);
delete(buf); 7。_bstr_t变量
_bstr_t类型是对BSTR的封装,因为已经重载了=操作符,所以很容易使用
_bstr_t bstrVar("test");
const char *buf = bstrVar;///不要修改buf中的内容
AfxMessageBox(buf);
8。通用方法(针对非COM数据类型)
用sprintf完成转换
char buffer[200];
char c = '1';
int i = 35;
long j = 1000;
float f = 1.7320534f;
sprintf( buffer, "%c",c);
sprintf( buffer, "%d",i);
sprintf( buffer, "%d",j);
sprintf( buffer, "%f",f);
(是转载)
你的问题可以用4。
好贴。谢谢