www.3112.net > mFC中Cstring转为ChAr

mFC中Cstring转为ChAr

原发布者:真燕无畏1、GetBuffer函数使用CString::GetBuffer函数.char*p;CStringstr="hello";p=str.GetBuffer(str.GetLength());str.ReleaseBuffer();将CString转换成char*时CStringstr("aaaaaaa");strcpy(str.GetBuffer(10),"aa");str.

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,

CString str1 =_T("123"); int len =WideCharToMultiByte(CP_ACP,0,str1,-1,NULL,0,NULL,NULL); char *ptxtTemp =new char[len +1]; WideCharToMultiByte(CP_ACP,0,str1,-1,ptxtTemp,len,NULL,NULL ); delete[] ptxtTemp; //或者CString str;str = _T("123");CStringA str_a;str_a = str;char* a = str_a.GetBuffer(0);str_a.ReleaseBuffer();

微软有现成的转换函数,如下,在前面加个宏定义,uses_conversion;然后用宏转换t2a.cstring str = _t("中国人");uses_conversion;char* p = t2a(str.getbuffer(0));str.releasebuffer();

CString 是封装的类,它有Find方法.你可以通过此方法,找到 “ ”也就是空格.以空格为分隔符.把AB CF BT分别取出赋值给新的CString 然后转换成char*再赋值给数组就行了.CString转换char*的网上有的是,自己去看下吧.有一点你要注意, char *argv[] 这个本身就是字符串数组.格式跟{"AB","CF","BT"}是不一样的,还请区分清楚.你这个是二维数组了.应该是char *argv[][]

用包装类来转换,用法 type.parsetype(string); 原理:java中的基础数据类型可以互相自动或者强制转换(认为你会这个哦),然后string类是引用类型.和其他的类型不一样,就得用java为他们之间的转换设置的包装类,具体去看api. 你的这个就用:character.parsechar(string str).就可以转换了

CString转成char 数组就强制类型转换就可以 char 数组转成int 用库函数 _atoi 或者这类的别的什么

//cs是CString类型变量,只能转换为char*数组//VC6里面CString转char*:char *p =(LPSTR)(LPCSTR)cs;//VS里面CString转char*:int len=WideCharToMultiByte(CP_ACP,0,cs,-1,NULL,0,NULL,NULL);char *ptxtTemp =newchar[len +1];WideCharToMultiByte(CP_ACP,0,cs,-1,ptxtTemp,len,NULL,NULL);//相关处理,你可以把这段内容写成一个函数delete[] ptxtTemp;//记得释放内存

char *buf = (LPSTR)(LPCTSTR)m_SendMSG;buf 没有分配空间改成:char buf[100];strcpy(buf, m_SendMSG);

如果你的工程是unicode版本的话 转成int: ;int a = _wtoi(str.getbuffer()); 转成double: double b = _wtof(str.getbuffer());

网站地图

All rights reserved Powered by www.3112.net

copyright ©right 2010-2021。
www.3112.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com