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

MFC中怎么把CString与char数组互换?
CString splitNum = '0'
1>.\计算器wqyDlg.cpp(220) : error C2440: “初始化”: 无法从“char”转换为“ATL::CStringT<BaseType,StringTraits>”
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++)你这种写法,复杂度太恐怖了。。
------解决方案--------------------
在stdafx.h里面注释这个宏
C/C++ code
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS    // 某些 CString 构造函数将是显式的