


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+实现CString和string的互相转换2008年11月01日 转到评论 发表评论在C+里经常遇到到转换字符串的情况,有时很棘手。网上搜寻,找到此篇,非常不错,分享下CString-std:string 例子:CString strMfc=“test“;std:string strStl;strStl=strMfc.GetBuffer(0);std:string-CString 例子:CString strMfc;std:string strStl=“test“;strMfc=strStl.c_str();AfxExtractSubString是截取字符串的函数,很好用,不过美中不足的地方在与它只能使用单个字符作为分割符。但是这种情况在很多时候都行不通,如果分割符需要是两个字符以上呢?之前因为这个问题试了很久,也在网上搜索过。不过可惜的是,网上的大部分关于VC截取字符串的文章都是那么同样的几篇,都是写的满复杂然后可以实现了AfxExtractSubString功能而已的,也就是只能用单个字符截取,但是标题却写着用字符串截取字符串,好笑!不找了,自己写吧。CString里面有Find,然后再组成数组。void Split(CString source, CStringArray& dest, CString division)dest.RemoveAll();int pos = 0;int pre_pos = 0;while( -1 != pos )pre_pos = pos;pos = source.Find(division,(pos+1);dest.Add(source.Mid(pre_pos,(pos-pre_pos);CString source是需要截取的原字符串,CStringArray& dest 是最终结果的数组CString division 是用来做分割符的字符串备忘:为了适用于Unicode环境,要养成使用_T()宏的习惯1、格式化字符串CString s;s.Format(_T(The num is %d.), i);2、转为 int转10进制最好用_ttoi(),它在 ANSI 编码系统中被编译成_atoi(),而在 Unicode 编码系统中编译成_wtoi()。用_tcstoul()或者_tcstol()可以把字符串转化成任意进制的(无符号/有符号)长整数。CString hex = _T(FAB);CString decimal = _T(4011);ASSERT(_tcstoul(hex, 0, 16) = _ttoi(decimal);3、转为 char *3.1 强制类型转换为 LPCTSTR,不能修改字符串LPCTSTR p = s; 或者直接 (LPCTSTR)s;3.2 使用 GetBuffer 方法不给 GetBuffer 传递参数时它使用默认值 0,意思是:“给我这个字符串的指针,我保证不加长它”。假设你想增加字符串的长度,就必须将你需要的字符空间大小(注意:是字符而不是字节,因为 CString 是以隐含方式感知 Unicode 的)传给它。当调用 ReleaseBuffer 时,字符串的实际长度会被重新计算,然后存入 CString 对象中。必须强调一点,在 GetBuffer 和 ReleaseBuffer 之间这个范围,一定不能使用你要操作的这个缓冲的 CString 对象的任何方法。因为 ReleaseBuffer 被调用之前,该 CString 对象的完整性得不到保障。LPTSTR p = s.GetBuffer();/ do something with pint m = s.GetLength(); / 可能出错!s.ReleaseBuffer();int n = s.GetLength(); / 保证正确4、其他4.1 分割字符串AfxExtractSubString(CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = n);CString csFullString(_T(abcd-efg-hijk-lmn);CString csTemp;AfxExtractSubString(csTemp, (LPCTSTR)csFullString, 0, -); / 得到 abcdAfxExtractSubString(csTemp, (LPCTSTR)csFullString, 1, -); / 得到 efgAfxExtractSubString(csTemp, (LPCTSTR)csFullString, 2, -); / 得到 hijkAfxExtractSubString(csTemp, (LPCTSTR)cs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全球葡萄酒产区特色与品牌国际化战略报告
- 2025年事业单位招聘考试综合类专业能力测试试卷(计算机类)-2025年夏季试题解析答案
- 2025年陕西省西安市事业单位招聘考试综合类结构化面试真题模拟试卷
- 2025年度企业员工培训课程资源定制开发与推广服务合同
- 2025年全国计算机技术与软件专业技术资格(水平)考试软件质量保证工程师真题模拟解析试卷
- 2025科技创意园区商铺使用权转让合同
- 2025年高速公路绿化带养护服务采购协议
- 2025年度高端电子产品定制包装解决方案采购合同
- 2025年食品检验工(中级)考试试卷:食品检验实验室安全管理与规范执行
- 2025年度五星级度假酒店客房租赁与全面养护执行合同
- 2025至2030中国安保服务市场现状动态与前景方向分析报告
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘48人笔试参考题库附带答案详解析集合
- 林科院面试题库及答案
- T/CSIQ 8014.1-2018组串式光伏逆变器技术规范第1部分:总则
- T/CASTEM 1007-2022技术经理人能力评价规范
- 固体废物的处理与处置-固体废物的最终处置技术
- 先天性甲状腺功能减退症诊治指南(2025)解读
- 学会真学习拒绝假努力!课件-2026届高三下学期三模阶段性班会
- 初中七年级数学备课组科研合作计划
- 2025-2030年中国保暖内衣品牌市场动态及发展竞争力研究报告
- 职业技术学院《农业物联网》课程标准
评论
0/150
提交评论