字符串之间相互转换 字符与数值之间的转换

字符变量:                      

1.    Char                       

2.    Char*                                          

3.    CString                                  

4.    BSTR                                           

 数值变量

 1. float

 2. double

 3. long

 4. int

UNICODE 环境:

********************************************************************************************************

*******************字符与字符转换*******************

********************************************************************************************************


CString ---->  BSTR

CString  Str = L"str ";

BSTR bstr=Str.AllocSysString();

 

BSTR ----> CString

BSTR  bstr = ::SysAllocString(L"str ");

CString Str = bstr;


WCHAR* ----> CString

_TCHAR* pWstr="str";

CString  str=pWstr;

 

CString ----> WCHAR*

CString   Str= L"str ";

_TCHAR*  pWstr;

pWstr = Str .GetBuffer(0);


CString ----> LPCTSTR

CString   Str= L"str";

const _TCHAR*  pWstr=LPCTSTR)Str;


LPCTSTR ----> CString

LPCTSTR  lpctStr = L"str ";

CString  cWstr = lpctStr;


多字节(MBCS /ANSI)转宽字节(UNICODE)

char *cmrName="中国 ";

WCHAR *str;                                                         

DWORDdwNum =MultiByteToWideChar (CP_ACP,0,cmrName, -1,NULL,0);

str =newWCHAR[dwNum];

MultiByteToWideChar(CP_ACP, 0,cmrName, -1,str,dwNum);

宽字节(UNICODE)转多字节(MBCS/ANSI)

CString str=L"中国";

int       iTextLen;

iTextLen = WideCharToMultiByte(CP_UTF8,0, str, -1,NULL, 0, NULL,NULL);

char    *pElementText = new char[iTextLen+ 1];

memset( ( void*)pElementText, 0, sizeof(char) * ( iTextLen + 1 ) );

WideCharToMultiByte( CP_UTF8,0,str,-1,pElementText,iTextLen,NULL,NULL);

 

 

********************************************************************************************************

*******************字符与数值转换*******************

********************************************************************************************************

 

Float or Double ----> CString

float fArea=12.234;

CString Str;

Str.Format(_T("%s%0.2f"),Str,fArea);

wcout<<Str.GetString();

12.23

 

//          %s%lf   double--->CString        %s%f   float---->CString

//          %s%0.2lf            %s%f0.0           设置小数点          

Int or Long ----> CString

int fArea=12;

CString Str;

Str.Format(_T("%s%d"),Str,fArea);

wcout<<Str.GetString();

12

 

Char*----> int

char*str4="123";

intdata = (atoi)(str4);

 

 

CString ----> double

CString str=L500.00;

Double   height = _wtof(str);

LONG    nPort=_wtol(str);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值