MFCC中CString, int, string, char之间的转换
1. CString --> char*
(1)传给未分配内存的指针
CString cstr ="ASDDSD";
char *ch =cstr.GetBuffer(cstr.GetLength()+ 1);
cstr.ReleaseBuffer(); //使用完后及时释放,以便能使用其它的CString成员函数
//修改ch指向的值等于修改cstr里面的值
//用完ch后,不用deletech,因为这样会破坏cstr内部空间,容易造成程序崩溃
(2)赋给已分配内存的char *
CString cstr1 ="ASDDSD";
int strLength =cstr1.GetLength() + 1;
char *pValue =new char[strLength];
strncpy(pValue,cstr1, strLength);
2. CString --> const char*
传给未分配内存的const char*(LPCTSTR)指针
CStringcstr(asdd); //CString cstr=”asdd”;
const char* ch =(LPCTSTR)cstr;
//ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全。
3. CString --> char[]
赋给已分配内存char[]数组.
CString cstr2 ="ASDDSD";
int strLength2= cstr2.GetLength() + 1;
charchArray[100];
memset(chArray,0, sizeof(bool) * 100); //将数组的垃圾内容清空.
strncpy(chArray, cstr2, strLength2);
//strncpy(chArray,(LPCTSTR) cstr2,sizeof(chArray));
4. string --> char*
string 是c++标准库里面其中一个,封装了对字符串的操作。
(1)data(),返回没有”\0“的字符串数组
stringstr="abc";
char*p=str.data();
(2)c_str 返回有”\0“的字符串数组
stringstr="gdfd";
char*p=str.c_str();
(3)copy
stringstr="hello";
char p[40];
str.copy(p,5,0); //这里5代表复制几个字符,0代表复制的位置
*(p+5)='\0'; //主意一定要手动加上结束符
cout < <p;
5. string --> CString
CString.format("%s",string.c_str());
//用c_str()确实比data()要好
6. char* --> CString
CString.Format("%s", char*);
7. char* --> string
strings(char *);
注:标准C里没有string,char *==char []==string
8. string --> char *
char *p =string.c_str();
9. CString --> string
strings(CString.GetBuffer(CString.GetLength()));
//GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间
10. CString --> char *
charpoint=strtest.GetBuffer(strtest.GetLength());
//不建议用(LPCTSTR)进行强制类型转化,这样strtest大小发生变化时会出现错误。
11. CString --> int
将字符转换为整数,可以使用atoi、_atoi64,类似的还有相关函数atol(转为长整型)、atof(转为浮点小数)等。
CString ss=″1212.12″;
inttemp=atoi(ss);
12. char* --> int
intatoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);
long long atoq(const char *nptr);
13. CString --> int
可以使用CString的Format函数,Format函数的功能很强,值得你研究一下。
CString s;
inti = 64;
s.Format(“%d”, i);
//如果是使用char数组,也可以使用sprintf函数。
补充:
Cstring的相关成员函数:http://www.cnblogs.com/Caiqinghua/archive/2009/02/16/1391190.html
微软对这方面的总结:http://msdn.microsoft.com/zh-cn/library/vstudio/ms235631.aspx
不能将参数 1 从“char [10]”转换为“LPTSTR”:
解决:http://www.xuebuyuan.com/833065.html
不能将参数 1 从“CString”转换为“const char *”
解决:http://fengqing888.blog.163.com/blog/static/330114162012016103558408/
参考来源:
http://blog.minidx.com/2009/03/03/2209.html
http://blog.csdn.net/sszgg2006/article/details/8667945
MFCC中CString, int, string, char之间的转换相关推荐
- CString,int,string,char*之间的转换
<C++标准函数库>中说的 有三个函数可以将字符串的内容转换为字符数组和C-string 1.data(),返回没有"\0"的字符串数组 2,c_str() ...
- CString,int,string,char*之间的转换(转)
............................................................... <C++标准函数库>中说的 有三个函数可以将字符串的内容 ...
- VC之CString,wchar_t,int,string,char*之间的转换
VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...
- cstring转为string vc_VC之CString,wchar_t,int,string,char*之间的转换-阿里云开发者社区
VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...
- MFC中CString,int,string,char * ,char[] 之间互转
<1> (1)string 转 CString CString.format("%s", string.c_str()); (2)char 转 CStri ...
- CString,string,char*之间的转换(转)
Bluestorm's Space 博客园 首页 新随笔 联系 订阅 管理 随笔 - 588 文章 - 3 评论 - 137 CString,string,char*之间的转换(转) 这三种类型各 ...
- c 语言 uint8 转char,在C中的uint8和char之间的转换
我有一个API来实现对EEPROM的写入操作.下面是它的声明:在C中的uint8和char之间的转换 CYBLE_API_RESULT_T CyBle_StoreAppData (uint8 * sr ...
- VC之CString,wchar_t,int,string,char*之间的转换方法
1. CString 转 wchar_t CString path = "asdf"; wchar_t wstr[256] = path.AllocSysString(); 或者: ...
- MFC中的CString.Format及CString,string,char*之间的转换
1.CString.Format的使用:https://blog.csdn.net/wangkaishou/article/details/5846152 2.CString,string,char* ...
最新文章
- elk日志分析系统_部署ELK企业内部日志分析系统
- fedora如何隐藏顶部状态栏_如何使用PDF Arranger来对PDF文件进行排版和修改
- “产教融合新范式,校企聚力新实践”——2018杭州云栖大会大学合作专场论坛成功举办...
- c语言Winmain 错误,C语言编译错误 undefined reference to `WinMain@16'
- Spark Master的注册机制与状态管理
- java对unicode转码,Unicode编码和中文互转(JAVA实现)
- UVA10394 Twin Primes【孪生素数】
- Json文件转Map(三)之获取嵌套Map值
- matlab和origin的区别,Matlab与Origin的区别
- Zemax学习笔记——Zemax序列坐标系理解及坐标断点
- android小米4c 权限,小米手机4c详细刷成开发版获得Root权限的步骤
- 脉歌蓝牙耳机线评测_感受蓝牙5.0带来的震撼——脉歌T1000Pro蓝牙耳机轻体验
- 条形码 Ean13 的校验方法
- vscode能写winform窗体吗_VSCode——愉快的写C#
- 多线程与高并发day04
- oracle12c 一键卸载
- hdu 2897 邂逅明下
- 无源波分和彩光模块_波分光模块详细介绍
- 软件生命周期中的测试概念,IT软件生命周期中的重要概念
- SurfaceView 加速 开启硬件加速
热门文章
- SSCTF-2017-web-writeup
- tmux使用及个性化配置
- Selenium学习笔记4--获取页面元素内容
- ps:暂存盘已满异常
- MATLAB智能算法实现 (一)
- 局域网内大幅提高网速
- Egret 4.1.6 和 LayaBox(LayaAir 2.0) 的 易用性 对比
- OriginLab OriginPro 8.1 SR3绿色注册版 – 专业绘图与数据分析软件
- 计算机应用基础考试卷子2096,基于ATA考试的计算机应用基础课程的教学解析
- 「宮崎駿とジブリ美術館』に迷ったのですか?作者は逝世者