CString截取字串方法( 链接
————————————以下为原文——————————————
在CString中有 Find(),Delete(),Left(),Right(),Mid()就可以实现分离子串的目的了。
int  Find( TCHAR ch ) const;
找到给定的字符返回它在字符串中对应的索引号;没有找到就返回-1。

示例如下:

CString s( "abcd" );
ASSERT( s.Find( 'b' ) == 1 );

FindOneOf()

给定一字符串,然后查找其中出现的第一个字符位置,示例如下:
CString s( "abcdef" );
ASSERT( s.FindOneOf( "zb" ) == 1 ); 
返回值:
  • 如果查到,返回以0索引起始的位置
  • 未查到,返回-1
  • ReverseFind()

    该函数反向查找字符出现的位置。示例如下:

    CString s( "abcd" );
    ASSERT( s.ReverseFind( 'b' ) == 2 );

    返回值:

    • 如果查到,返回以0索引起始的位置
    • 未查到,返回-1
int  Delete( int nIndex, int nCount = 1);
返回值是被删除前的字符串的长度,nIndex是第一个被删除的字符索引,nCount是一次删除几个字符。当nCount过大,没有足够的字符删除时,此函数不执行。
CString  Left( int nCount ) const;
返回的字符串是前nCount个字符。
CString  Mid( int nFirst ) const;
截取从nFirst开始,直到字符串结束的字符串。
CString  Mid( int nFirst, int nCount ) const;
nCount代表要提取的字符数, nFirst代表要提取的开始索引位置
CString  Right( int nCount ) const;
返回的字符串是后nCount个字符。
Left()、Mid()、Right()函数示例如下:
CString s="天缘博客";//_T("天缘博客")
CString s1=s.Left(3);//天?
CString s2=s.Mid(3);//?博客
CString s4=s.Right(3);//?客s="123456789";
s1=s.Left(3);  //123
s2=s.Mid(3);   //456789
s4=s.Right(3); //789

简例:
CStringstr(”MyNameIsRenZheng”);
CStringstr1, str2, str3;
intx,y;
x=str.Find(_T("N"));   //2
y=str.Delete(0,5);  // 16
str1 =str.Left(3);   // MyN
str2 =str.Mid(11, 4);  //Zhen。注意,第二个参数是代表子串的长度
str3 =str.Right(3);  // eng
假使有CString str=_T("My name is Ren Zheng");
按空格提取子串可以采用如下方法:
CStringstr=_T("My name is Ren Zheng");
CArray<CString,CString>strArray;  //定义一个CString类型的动态数组,用来存取CString类型对象。
while(str.Find(_T(" "))+1)//当找不到空格时返回-1,所以这里我用它返回值加1来循环
{
strArray.Add(str.Left(str.Find(_T(“”))));//找到空格的索引,截取空格左边的字符串,并将它添加到strArray动态数组中。
str.Delete(0,str1. GetLength_r()+1);//返回删除空格和其左边的字符串的得到的新字符串。
}
strArray.Add(str);//最后加上经过最终删除后剩下的字符串;
这样按空格分离出的子串就都存储在动态CString类型的数组对象strArray中去了,现在就可以用strArray. Get_r(i)来得到每个子串。

怎么获取字符串中最后一个“\”的位置?

得到一个字符串,如:strFileFullName = "D:\code\cpp\data\frames_Src\001.jpg"

怎样得到:
strFilePath = "D:\code\cpp\data\frames_Src"
strFileName = "001.jpg"
关键是获取字符串中最后一个“\”的位置。
方法1: 
int n = strFileName.ReverseFind('\\');//从后往前寻找
strFilePath = strFileName.Left(n);

strFileName = strFileName.Right( strFileName.GetLength()-(n+1) );
方法2:
int p = strFileName.GetLength() - 1;
while(p >=0 && (strFileName[p]!= '\\'))
p--;
strFilePath = strFileName.Left(p);
strFileName = strFileName.Right( strFileName.GetLength()-(p+1) );

CString::Find(),Delete(),Left(),Right(),Mid(),FindOneOf(),ReverseFind()相关推荐

  1. CString之Find()、FindOneOf()、ReverseFind()

    此三个函数返回值均为整数int. 1.Find() 该函数从左侧0索引开始,查找第一个出现的字符位置,返回position.示例如下: 1 CString s( "abcd" ); ...

  2. CString——Left、Right、Find、Mid、ReverseFind

    1.CString::Left(intnCount)--返回字符串前nCount个字符的字符串 example: CString str(_T("Shop,车间")); str = ...

  3. MFC获取应用程序所在目录--CString(Left、Right、Find、ReverseFind)--Cstring与char或wchar转换

    一.CString--Left.Right.Find.ReverseFind CString--Left.Right.Find.ReverseFind CString::Left(intnCount) ...

  4. CString——Left、Right、Find、ReverseFind

    转载来自:http://blog.sina.com.cn/s/blog_635ff3050102uyog.html CString--Left.Right.Find.ReverseFind CStri ...

  5. CString字符串查找和截取与去空格(Find,FindOneOf,ReverseFind,Left,Mid,Right,substr,TrimLeft和TrimRight)

    一.CString之Find().FindOneOf().ReverseFind(). 此三个函数返回值均为整数int. 1.Find() 该函数从最左侧0位置开始索引,查找到第一个出现该字符的位置, ...

  6. VC++开发学习一(MFC中的CString类的常用的方法技巧介绍)

    ①.CString 类对象的初始化: CString str; CString str1(_T("abc")); CString str2 = _T("defg" ...

  7. CString 用法大全

    ①.CString 类对象的初始化: CString str; CString str1(_T("abc")); CString str2 = _T("defg" ...

  8. vc驿站视频教程笔记4 Cstring 讲解

    --------------------------------------------------------------------------- VC 驿站 WwW.CcTry.CoM 多抽出一 ...

  9. 【MFC】MFC基础类——CString(使用心得)

    文章目录 01.CString类介绍 02.常见函数表 03.CString类成员函数示例 3.1.CString(构造函数) 3.2.GetLength 3.3.IsEmpty 3.4.Empty ...

最新文章

  1. Client Dimensions , offsetHeight , scrollTop 属性详解
  2. Spring Controller Junit例子
  3. [ZZ]如何在Web页面上直接打开、编辑、创建Office文档
  4. jQuery实现的简单分页功能的详细解析
  5. 2021年8月国产数据库排行榜:TiDB稳榜首,达梦返前三,Kingbase进十强,各厂商加速布局云生态...
  6. java验证码制作思路_Java实现验证码制作之一自己动手
  7. 容器化RDS|计算存储分离 or 本地存储?
  8. c语言无纸化测评答案,无纸化计算机二级C语言程序设计题库答案程序题
  9. 百度云链接后的html,百度云链接失效,这样就能找回!
  10. Qt画面切换和刷新延迟的问题
  11. 无线城域网-无线广域网
  12. 如何快速搜索文件和文件内容
  13. Thinkpad E430c安装Ubuntu14.04第三方驱动的选择
  14. 基本的LC串联和并联振荡电路分析
  15. C#打印小票自带条形码打印
  16. 渲染是不是很费电脑,云渲染对电脑的要求高吗?
  17. 万能的BP神经网络,从计算一道小学题开始
  18. centos7防火墙开放端口,附开放samba特定端口实例
  19. python访问陌生人qq空间_在Python中使用Phantomjs模拟登录QQ空间
  20. Windows的SID和RID

热门文章

  1. js提交form表单
  2. US-100超声波 使用
  3. 基于JAVA漫画网站系统计算机毕业设计源码+数据库+lw文档+系统+部署
  4. 基于javaweb+jsp的企业财务记账管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot)
  5. 2023计算机毕业设计SSM最新选题之java中小学在线考试系统s29r0
  6. Linux:使用ps-grep-awk批量kill杀进程
  7. 世界杯竞猜,流量和热度谁与争锋!
  8. PTA-L2-028 秀恩爱分得快 (25分)
  9. 以太网远程IO模块与工控机IO板卡的比较
  10. matlab与工控机PCI板卡连接2020.12.10