CString、Char* ,char [20]、wchar_t、unsigned short转化

CString strName;

char * pcName;

char cName[20];//1个字节,-128 到 127 或者 0 到 255

unsigned short sName;

ACHAR * paName;

TCHAR*ptName;

wchar_t *pwName;//2 或 4 个字节,一个宽字节:typedef wchar_t short int;

double dName;//8字节,+/- 1.7e +/- 308 (~15 个数字)

int nName;//4字节,-2147483648 到 2147483647

std::wstring wsName;

std::string ssName;

 

LPCTSTR 可当做CString 处理

LPCTSTR判空

LPCTSTR lpName;
if (lpName!= NULL && lpName[0] != _T('\0'))
{
	//不为空;
}

 

(1)CStringunsigned short

CString strName;
unsigned short sName;

sName = _ttoi(strNAme);

(2)CString转化char[20]

(3)CStringTCHAR*

CString strName;
TCHAR*ptName;

ptName = strName.GetBuffer();

(4)char[20]转化ACHAR*

char cName[20];
ACHAR * paName;

paName = _T("cName");

若以上操作不管用就定义一个CString,通过CString作为中间量转化

char cName[20];
CString strName;

strName = cName;

ACHAR * paName;
paName = strName.GetBuffer();

(5)CString转化double、long

CString strName;
double dName;

dName = _tstof(strName);
CString strName;
long lName;

lName = _ttol(strName);

(6)CString转化int

CString strName;
int nName;

nName = _ttoi(strName);

(7)intCString

int nName;
CString strName;

strName. Format(_T("%d"), nName);

(8)std::wstringCString

std::wstring wsName;
CString strName;

strName  = wsName.c_str();

(9)CStringstd::wstring

CString strName;
std::wstring wsName;

wsName = strName. GetString();

(10)std::stringCString

std::string ssName;
CString strName;

strName = ssName.c_str();

(11)CStringstd::string

CString strName;

CStringA stra( strName .GetBuffer(0));
std::string ssName(stra.GetBuffer(0));
stra.ReleaseBuffer();

unicode时,先转为非unicode. : 

CString strName;
std::string sstrConn;

sstrConn = CT2A(strConn.GetBuffer());

(12) std::string 转化Char*

std::string ssName;
char * pcName = new char(20);
pcName  = ssName.data();
pcName  = ssName.c_str();

(13) CStringwchar_t *

CString strName;
wchar_t *pwName;
pwName = strName.AllocSysString();

 

转载于:https://my.oschina.net/u/2930533/blog/761874

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值