MFC中如何把CString与char数组互换

 我来答
归悦欣cf
推荐于2017-12-15 · TA获得超过1444个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1325万
展开全部
CString str=_T("你好");
char ch[4];
for(int i=0;i<str.GetLength();i++)
{
ch[i]=str.GetAt(i);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mafangsan
2013-12-12 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2585万
展开全部
给你看一小段例子:

char buff[128]="hello";
CString str;

str=buff; //因为CString 的 = 被重载,可以直接赋值
strcpy(buff,str.GetBuffer(128)); //GetBuffer可以拿到CString中字符串所存储的地址。

你再体会一下,应该就简单了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
血刃星辰s99
推荐于2016-10-15 · 超过56用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:134万
展开全部
for(int i=0; i<strlen(ex); i++) //ex是CString类型的 1.\计算器wqyDlg.cpp(233) : error C2664: “strlen”: 不能将参数 1 从“CString”转换为“const char *” ------解决方案-------------------------------------------------------- CString splitNum(_T(0));即可for(int i=0; i<ex.GetLength(); i++){} ------解决方案-------------------------------------------------------- 看看这个CString类里面的函数 ------解决方案-------------------------------------------------------- CString是一个兼容版的,根据你的项目设置,会自动变为ANSI,或是Unicode版。 所以,最好用TCHAR *来获得CString的字符串数据指针。 上面你的代码,可以改成 CString splitNum = TEXT(0);和for(int i=0; i<ex.GetLength(); i++)。 如果非要获得它的字符数据指针,可以利用它的LPCTSTR操作符: TCHAR * pstr = (LPCTSTR)ex; 当然了,求长度也不能用strlen了,要用兼容版_tcslen(),或是用lstrlen()。 再说一句,C串不显式包含长度信息,它的结束是遇到NUL符(\0)才结束,所以C串的求长度函数内部都是循环到NUL符计数。 for(int i=0; i<strlen(s); i++)你这种写法,复杂度太恐怖了。。 ------解决方案--------------------------------------------------------
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式