CString怎么转换成char*

 我来答
百度网友3cce05f59
2013-04-11
知道答主
回答量:7
采纳率:0%
帮助的人:3.4万
展开全部
那种强制转换不好用,很多时候都不能用。下面看我这个转换吧。虽然代码多一点,但是好用。有问题继续联系我。
CString str = _T("asdfg");
string st = (string)(CStringA)str;
int len = st.length();
char* ch = (char*)malloc(len); //动态申请char*大小的空间
for(int i = 0 ; i <len ; i++)
{
ch[i] = st[i];
}
ch[len] = '\0'; //char是以'\0'结束的,否则会出现结尾乱码
chaisson
2013-03-18 · TA获得超过117个赞
知道答主
回答量:100
采纳率:0%
帮助的人:73.4万
展开全部
CString strData ...;
char* tmp = new char[DATA_MAX];
sprintf(tmp,"%S", strData);
//必须大S。用小s的话,因为CString在UNICODE下占两个字节,对于英文字符只需一个字节,故其第一(或第二,取决于字节序)个字节会是0x00,转换为占一个字节的char就会被识别为字符串结束,故只能得到第一个字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
da_city
推荐于2017-10-15 · TA获得超过111个赞
知道答主
回答量:17
采纳率:0%
帮助的人:10万
展开全部
CString s = "abcd";
char *p = (LPSTR)(LPCTSTR)s;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shuaigaogao
2013-04-11
知道答主
回答量:9
采纳率:0%
帮助的人:3.6万
展开全部
CString strtest;
char * charpoint;
charpoint=”give string a value”;
strtest=charpoint;

///cstring TO char *
charpoint=strtest.GetBuffer(strtest.GetLength());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
椎冰
2012-04-12 · TA获得超过726个赞
知道小有建树答主
回答量:924
采纳率:0%
帮助的人:706万
展开全部
强制类型转换

CString s="abc";
char *d =(char*)s;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式