永发信息网

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;
}
全部回答
  • 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));
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯