MFC中CString转为字符数组 究竟怎么转啊
答案:4 悬赏:40 手机版
解决时间 2021-03-22 10:15
- 提问者网友:謫仙
- 2021-03-21 22:10
MFC中CString转为字符数组 究竟怎么转啊
最佳答案
- 五星知识达人网友:荒野風
- 2021-03-21 22:31
char * cs2ca(CString str)
{
char *ptr;
#ifdef _UNICODE
LONG len;
len = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);
ptr = new char [len+1];
memset(ptr,0,len + 1);
WideCharToMultiByte(CP_ACP, 0, str, -1, ptr, len + 1, NULL, NULL);
#else
ptr = new char [str.GetAllocLength()+1];
sprintf(ptr,_T("%s"),str);
#endif
return ptr;
}
{
char *ptr;
#ifdef _UNICODE
LONG len;
len = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);
ptr = new char [len+1];
memset(ptr,0,len + 1);
WideCharToMultiByte(CP_ACP, 0, str, -1, ptr, len + 1, NULL, NULL);
#else
ptr = new char [str.GetAllocLength()+1];
sprintf(ptr,_T("%s"),str);
#endif
return ptr;
}
全部回答
- 1楼网友:神的生死簿
- 2021-03-22 00:42
直接赋值就可以
- 2楼网友:山有枢
- 2021-03-21 23:41
调用c_str()。详细可以百度
- 3楼网友:西风乍起
- 2021-03-21 22:58
首先必须要注意的一点,如果工程是UNICODE模式,那么是不能直接转换的,因为这种模式下,CString一个字符占两个字节,无法直接复制,必须widechartomultibyte函数转换。
如果不需要转换,赋值转换方法太多了,以你的定义为例:
strcpy(p,m_CStrEquaShow.GetBuffer(0));
如果不需要转换,赋值转换方法太多了,以你的定义为例:
strcpy(p,m_CStrEquaShow.GetBuffer(0));
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯