MFC中如何把CString与char数组互换
3个回答
展开全部
CString str=_T("你好");
char ch[4];
for(int i=0;i<str.GetLength();i++)
{
ch[i]=str.GetAt(i);
}
char ch[4];
for(int i=0;i<str.GetLength();i++)
{
ch[i]=str.GetAt(i);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你看一小段例子:
char buff[128]="hello";
CString str;
str=buff; //因为CString 的 = 被重载,可以直接赋值
strcpy(buff,str.GetBuffer(128)); //GetBuffer可以拿到CString中字符串所存储的地址。
你再体会一下,应该就简单了。
char buff[128]="hello";
CString str;
str=buff; //因为CString 的 = 被重载,可以直接赋值
strcpy(buff,str.GetBuffer(128)); //GetBuffer可以拿到CString中字符串所存储的地址。
你再体会一下,应该就简单了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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++)你这种写法,复杂度太恐怖了。。
------解决方案--------------------------------------------------------
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询