如何将CString转换为char*类型

 我来答
瑾瑜爸育儿
2016-10-12 · 知道合伙人软件行家
瑾瑜爸育儿
知道合伙人软件行家
采纳数:5813 获赞数:18788
毕业于四川成都大学汉语言文学专业,文学学士学位。 网络营销、网站运营行业10年SEO网站优化运营经验。

向TA提问 私信TA
展开全部

  将CString转换为char*类型

  • 1.传给未分配内存的const char* (LPCTSTR)指针. 

  •    CString cstr(asdd);

  •    const char* ch = (LPCTSTR)cstr;

  •    ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全.

  • 2.传给未分配内存的指针.

  •     CString cstr = "ASDDSD";

  •     char *ch = cstr.GetBuffer(cstr1.GetLength() + 1);

  •     cstr.ReleaseBuffer();

  •     //修改ch指向的值等于修改cstr里面的值.

  •     //PS:用完ch后,不用delete ch,因为这样会破坏cstr内部空间,容易造成程序崩溃.

  • 3.第二种用法。把CString 值赋给已分配内存的char *。

  •     CString cstr1 = "ASDDSD";

  •     int strLength = cstr1.GetLength() + 1;

  •     char *pValue = new char[strLength];

  •     strncpy(pValue, cstr1, strLength);

  • 4.第三种用法.把CString 值赋给已分配内存char[]数组.

  •     CString cstr2 = "ASDDSD";

  •     int strLength1 = cstr1.GetLength() + 1;

  •     char chArray[100];

  •     memset(chArray,0, sizeof(bool) * 100); //将数组的垃圾内容清空.

折柳成萌
高粉答主

2017-09-26 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6333万
展开全部
1.传给未分配内存的const char* (LPCTSTR)指针.
CString cstr(asdd);
const char* ch = (LPCTSTR)cstr;
ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全.

2.传给未分配内存的指针.
CString cstr = "ASDDSD";
char *ch = cstr.GetBuffer(cstr1.GetLength() + 1);
cstr.ReleaseBuffer();
//修改ch指向的值等于修改cstr里面的值.
//PS:用完ch后,不用delete ch,因为这样会破坏cstr内部空间,容易造成程序崩溃.

3.第二种用法。把CString 值赋给已分配内存的char *。
CString cstr1 = "ASDDSD";
int strLength = cstr1.GetLength() + 1;
char *pValue = new char[strLength];
strncpy(pValue, cstr1, strLength);

4.第三种用法.把CString 值赋给已分配内存char[]数组.
CString cstr2 = "ASDDSD";
int strLength1 = cstr1.GetLength() + 1;
char chArray[100];
memset(chArray,0, sizeof(bool) * 100); //将数组的垃圾内容清空.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式