其他类型转换为字符串

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:   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);  
原文地址:https://www.cnblogs.com/buffer/p/1277393.html