C/C++常用字符类型char、CSting、string转化

char是C/C++的基本数据类型,CString是使用MFC时的字符数据类型,string是使用C++的STL时常用数据类型。


1、CString to char*

CString str_cs("haha");
const char* p = str_cs.GetBuffer();

若需要对字符串进行后续的处理,则应该使用new或者malloc对p指针进行动态内存申请,大小由str_cs.GetLength()确定。
CString str_cs("haha");
char* p = new char[str_cs.GetLength()];
strcpy(p, (LPCTSTR)str_cs);
delete p;

2、char* to CString

char* p = "haha";
CString str_cs;
str_cs.Format("%s", p);

3、string to char*

string str_s = "haha";
char* p = str_s.c_str();

4、char * to string

char* p = "haha";
string str_s(p);

5、string to CString

string str_s = "haha";
CString str_cs;
str_cs.Format("%s", str_s.c_str());

6、CString to string

CString str_cs("haha");
string str_s(str_cs.GetBuffer(str_cs.GetLength()));
str_cs.ReleaseBuffer();
注意:上面这句GetLength()操作可加可不加,使用GetBuffer时若对返回的字符指针有内容修改操作,则需要用ReleaseBuffer()释放内存。

转化为char*时,若不修改字符串的值,定义成const char*更安全。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值