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

转载 2011年01月20日 18:34:00

 转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

 

CString string char* char 之间的字符转换(多种方法)

在写程序的时候,我们经常遇到各种各样的类型转换,比如 char* CString string 之间的互相转换。首先解释下三者的含义。 CString 是一种很有用的数据类型。它们很大程度上简化了MF...
  • u014028070
  • u014028070
  • 2015年02月05日 09:28
  • 1802

VS2013各种类型转换

1.CString到const char *的转换  一种方法: CString str=_T("这是我的测试程序。"); // 先得到要转换为字符的长度 const size_t strs...
  • xla9071352
  • xla9071352
  • 2016年08月25日 16:58
  • 452

Cstring转char*时只能获取第一个字符

 你应该是用了UNICODE编码,每个字符都是双字节的,对于英文字符串来说,其UNICODE编码的第2个字节是0,所以你只能获取到第一个字母(因为接着就是0结尾了)。 所以char类型与w...
  • dongchongyang
  • dongchongyang
  • 2014年06月05日 11:14
  • 1735

【编程拾遗】VC++中LPCTSTR、CString、char *、string之间的相互转换

字符集 在VC2012中,字符集默认采用Unicode字符集(Use Unicode Charecter Set选项),其值还可以设置为多字节字符集(Use Multi-Byte Charect...
  • JasonDing1354
  • JasonDing1354
  • 2015年01月30日 14:38
  • 4669

Unicode编码下CString、char*、BSTR相互转换,char*、wchar_t*相互转换

更多精彩内容,请见:http://www.16boke.com 1、Unicode编码下CString转为char* 方法一:使用API:WideCharToMultiByte进行转换 #inclu...
  • one_in_one
  • one_in_one
  • 2014年05月20日 10:30
  • 5628

CString 和 string, char * , char[], 以及其他类型之间的互相转换小结

在工作中,我们经常遇到遇到一些不同类型之间的转换,因为近日遇到一些很多的CString和std::string 之间的转换, 这里简单总结一下与CString相关的一些类型准换。 CString本质...
  • xiaominggunchuqu
  • xiaominggunchuqu
  • 2016年04月09日 00:11
  • 2737

VS2013各种类型转换

1.CString到const char *的转换         const char * a;         CString b;        //a=b;//不存在从CSring到const...
  • u014568921
  • u014568921
  • 2015年03月14日 14:29
  • 1793

数据类型转字符串及CString与其他数据类型的转换

一、其它数据类型转换为字符串 ▲短整型(int)    itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制    itoa(i,temp,2); ///...
  • s595674548
  • s595674548
  • 2016年03月03日 11:39
  • 1268

Unicode下CString和char *之间的互相转换

原文链接:http://blog.csdn.net/candyliuxj/article/details/6796001 CString中存储的字符的数据类型为wchar_t类型。 一、CStr...
  • huasonl88
  • huasonl88
  • 2015年12月12日 12:25
  • 1895

在Java中如何把char数组转换为字符串

在Java中如何把char数组转换为字符串
  • u011998957
  • u011998957
  • 2015年06月18日 20:56
  • 3235
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: [转]CString、char*、string、int、_bstr_t、CTime、COleDateTime相互转换,判断一个字符串是一个浮点数
举报原因:
原因补充:

(最多只允许输入30个字)