CString string char* char[]转换总结

注意:以下方法在Character Set 选 Use Multi-Byte Character Set时有效!


☆☆声明以下变量

CString strMFC;
string str;
char *p;
char ch[100];
PS:以下转换可能有多种实现方式,代码中用注释列出。

一、CString 转转string char* char[ ];

strMFC = _T("光学跟踪@opticaltracker");//赋值
/*
**转string *3
*/
str = strMFC.GetBuffer(0);
//str = strMFC.GetBuffer();
//str = strMFC.GetBuffer(strMFC.GetLength());

/*
**转char* *2
*/
p = strMFC.GetBuffer(0);
//p = (LPSTR)(LPCSTR)strMFC;

/*
**转char[] *3
*/
memcpy(ch, strMFC.GetBuffer(), strMFC.GetLength()*sizeof(char));
//strncpy_s(ch, strMFC.GetBuffer(), strMFC.GetLength()*sizeof(char));
//strcpy_s(ch, strMFC.GetBuffer(0));
☆ 结果如下图:



二、string转转CString char* char[ ];

str = _T("光学跟踪@opticaltracker");
/*
**转CString *1
*/
strMFC = str.c_str();

/*
**转char* *2
*/
p = (char*)str.c_str();
//p = (char*)str.data();

/*
**转char[] *1
*/
strcpy_s(ch, str.c_str());
☆ 结果如下图:


三、char* 转转CString string char[ ];

p = _T("光学跟踪@opticaltracker");
/*
**转CString *1
*/
strMFC.Format(_T("%s"),p);
	
/*
**转string *1
*/
str = p;
	
/*
**转char[] *2
*/
strcpy_s(ch,p);
//memcpy(ch,p,sizeof(ch));
☆ 结果如下图:



四、char[ ] 转转CString string char*;

strcpy_s(ch, _T("光学跟踪@opticaltracker") );
/*
**转CString *2
*/
strMFC = ch;
//strMFC.Format(_T("%s"),ch);
	
/*
**转string *1
*/
str = ch;
	
/*
**转char* *1
*/
p = ch;

☆ 结果如下图:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值