[转]CString、char*、string、int、_bstr_t、CTime、COleDateTime相互转换,判断一个字符串是一个浮点数

 转http://www.cnblogs.com/xtry/articles/44433.aspx

 

 #include

 using namespace std; 

 #include

{   

   CString strCString="ABC";   

 

   char strchar[256],*pstr;       

 

   pstr=(LPSTR)(LPCTSTR)strCString;                  //CString---->char*    

 

   strcpy(strchar,(LPSTR)(LPCTSTR)strCString);                                    //CString---->char[]     

 

   _bstr_t strbstr=pstr;                                                 //char*---->_bstr_t   

 

   WCHAR *strWCHAR=strbstr;                             //b_str_t--->UNICODE         

 

  strbstr=strWCHAR;      pstr=strbstr;              //UNICODE---->char*

 

   strCString="10";


     int istr=atoi((LPSTR)(LPCTSTR)strCString);                  //CString、char[]、char*------>int


     strCString.Format("%d",istr);                                          //int----->CString


     sprintf(strchar,"%d",istr);                               //int----->char[]

 

 pstr=new char[256];                              //字符串申请空间    

 

  strcpy(pstr,"ABC");                               //字符串赋值     

 

 delete []pstr;                                        //字符串释放          

 

string strstring="ABC";     

 

pstr=(char*)strstring.c_str();                             //string---->char*    

 

strCString="2003-10-27 6:24:37";                       //CString--->COleDateTime   

 

COleVariant vtime(strCString);     

 

 vtime.ChangeType(VT_DATE);     

 

COleDateTime time4=vtime;

 

 COleDateTime time1(1977,4,16,2,2,2);                            //COleDataTime--->CTime

 


     SYSTEMTIME systime;


     VariantTimeToSystemTime(time1, &systime);


     CTime tm(systime);
    
     time_t time2=tm.GetTime();                                //CTime--->time_t


     COleDateTime time3(time2);                             //time_t--->COleDateTime

 

   //判断字符串是否是某种类型


     CString sValue("123.1");


     COleVariant vValue(sValue);
    
     BOOL bStrIsFloat = (SUCCEEDED(VariantChangeType(&vValue, &vValue, 0, VT_R8)) && sValue.Find('.') != -1);
     if(bStrIsFloat)
     {
     AfxMessageBox("浮点");
     }
    } 

/1.   char*   转成CString     

 

    (1)可以直接构造函数.如下:             

 

          char   *   p   =   "test";     CString   str(p);      

 

   (2)可以用成员函数Format   如下:                    

 

 char*   p   =   "test;                

 

     CString   str;                    

 

 str.Format("%s",   p);     2.   CString   转   char*      char*   ch   =   cstring.GetBuffer(cstring.GetLength());  

 

/
CString a = "poprat";
char* b;
b = new char[strlen(a)+1];
strcpy(b, a);

//
[转]string CString以及char*2006年12月12日 星期二 16:32string是方便的,可以从几乎所有的字符串构造而来,包括CString和char*;

CString次之,可以从基本的一些字符串变量构造而来,包括char*等;
char*没有构造函数,仅可以赋值;
举例:
char* psz = “joise”;
CString cstr( psz );
string str( cstr );
string是最方便的,几乎可以直接用所有的字符串赋值,包括CString和char*;
CString次之,可以直接用些基本的字符串赋值,包括char*等;
char*只能由指针赋值,并且是极危险的操作,建议使用strcpy或者memcpy,而且char*在声明的时候如未赋初值建议先设为NULL,以避免野指针,令你抓狂;
举例:
char *psz = NULL;
psz = new char[10]; //当然,以上的直接写成char *psz = new char[10];也是一样
memset( psz, 0, 10 );
strcpy( psz, “joise” ); 
CString cstr;
cstr = psz;
string str;
str = psz;
str = cstr;
delete []psz;
string与CString差不多,可以直接与char*进行加法,但不可以相互使用+运算符,即string str = str + cstr是非法的,须转换成char*;char*没有+运算,只能使用strcat把两个指针连在一起;举例:char* psz = “joise”;CString cstr = psz;cstr = cstr + psz;string str = psz;str = str + str + psz;strcat( psz, psz );strcat( psz, cstr );//合法strcat( psz, str );//非法,由此可见,CString可自动转换为const char*,而string不行 /
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bzljn/archive/2008/07/14/2650876.aspx

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值