C++下截取字符串「建议收藏」

C++下截取字符串「建议收藏」std::string::substrstringsubstr(size_tpos=0,size_tlen=npos)const;功能:按照条件截取字符串参数:pos=截取起始位      len=截取长度用法1:截取下标从2(第3个字符)开始到字符串结尾的字符串stringstr=”ABCDEFG”;str

大家好,又见面了,我是你们的朋友全栈君。

std::string::substr

string substr (size_t pos = 0, size_t len = npos) const;

功能:按照条件截取字符串

参数:pos=截取起始位 

          len=截取长度



用法1:截取下标2(第3个字符)开始到字符串结尾的字符串

string str = "ABCDEFG";
string cut= str.substr(2);

最终,cut=”CDEFG”。

衍生:如果str=”image007.jpg”,而我们想知道其文件扩展名(filename extension),那么可以这样操作:

string str = "image007.jpg";
string cut= str.substr(str.find_last_of(".")+1);

最终,cut=”jpg”,得到扩展名。其中,str.find_last_of(“.”)返回str字符串中最后一个’.’的所在下标,这里返回8(int)。

关于string::find_first_of()string::find_first_not_of()string::find_last_of()string::find_last_not_of(),参考如下:

string str1 = "cup,car,person,car,booo";
string str2 = "ako";


int num_1 = str1.find_first_of(str2);//返回str1中第一个与str2的第一个字符('a')相同字符的下标 ,返回5
int num_2 = str1.find_first_not_of(str2);//返回str1中第一个与str2的第一个字符('a')不同字符的下标 ,返回0


int num_3 = str1.find_last_of(str2);//返回str1中最后一个与str2的最后一个字符('o')相同字符的下标 ,返回22
int num_4 = str1.find_last_not_of(str2);//返回str1中最后一个与str2的最后一个字符('o')不同字符的下标 ,返回19

注:如果str2中的对应字符(最后或者最前字符)不在str1中,将返回一个很大的数。



用法2:截取下标从2(第3个字符)开始截取3个字符的字符串

string str = "ABCDEFG";
string cut= str.substr(2,3);

最终,cut=”CDE”,即从下标为2开始向后数3位。

衍生:如果str=”image007.jpg”,而我们只要其文件名而不要扩展名,那么可以这样操作:

string str = "image007.jpg";
string cut= str.substr(0,str.find_last_of("."));

最终,cut=”image007″,得到不含扩展名的文件名。


另外,C++中string的详细操作可点击参考这里

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144589.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月19日 上午9:00
下一篇 2022年5月19日 上午9:20


相关推荐

  • java ajaxsubmit_ajaxSubmit返回JSON格式

    java ajaxsubmit_ajaxSubmit返回JSON格式开发时遇到根据不同情况返回错误提示信息的需求 用到了 ajax 中返回 json 格式数据的 前台请求代码 functionlogi ajax 几个参数需要注意一下 type POST 方法类型 dataType json 预期服务器返回的数据类型 url login action urldata form1 serialize succes

    2026年3月19日
    2
  • Graphics2D 绘制图形

    Java语言在Graphics类提供绘制各种基本的几何图形的基础上,扩展Graphics类提供一个Graphics2D类,它拥用更强大的二维图形处理能力,提供、坐标转换、颜色管理以及文字布局等更精确的控制。绘图属性Graphics2D定义了几种方法,用于添加或改变图形的状态属性。可以通过设定和修改状态属性,指定画笔宽度和画笔的连接方式;设定平移、旋转、缩放或修剪变换图形;以及设定填充图

    2022年4月13日
    104
  • 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略

    精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略精通WebAnalytics2.0(4)第二章:选择你的网络分析灵魂伴侣的最佳策略   精通WebAnalytics2.0:用户中心科学与在线统计艺术第二章:选择你的网络分析灵魂伴侣的最佳策略  在WebAnalytics2.0的新…

    2022年6月28日
    20
  • pycharm运行不了程序_如何完全卸载pycharm

    pycharm运行不了程序_如何完全卸载pycharm在尝试了各种常规操作后,均无法打开,最后终于解决了!!!现在cmd中输入pycharm报错OpenJDK64-BitServerVMwarning:OptionUseConcMarkSweepGCwasdeprecatedinversion9.0andwilllikelyberemovedinafuturerelease.ErroroccurredduringinitializationofVMInitialheapsizesettoa

    2022年8月29日
    6
  • Java动态代理之InvocationHandler最简单的入门教程

    Java动态代理之InvocationHandler最简单的入门教程网上关于 Java 的动态代理 Proxy 和 InvocationHa 这些概念有讲解得非常高深的文章 其实这些概念没有那么复杂 现在咱们通过一个最简单的例子认识什么是 InvocationHa 值得一提的是 InvocationHa 在 Spring 框架实现中被广泛使用 这意味着我们吃透了 InvocationHa 就为将来的 Spring 源码学习打下一个坚实的基础

    2026年3月16日
    2
  • 苹果 find my 原理_find区别

    苹果 find my 原理_find区别什么是查我网络?2021年4月21日的苹果发布会发布了一款新的产品:AirTag,防丢器。使用的是BLE+UWB的技术。BLE通过FindMy网络解决了GPS定位的问题;而UWB解决了室内的、厘米级的精准定位问题。二者相互补充,实现了比较精准的定位,为用户提供优秀的物品防丢体验。查我网络(FindMyNetwork)是苹果公司发布的一项应用技术。这项技术比较神奇的一点是,支持这项技术的苹果设备(iPhone,iPad,AirPods,AirTag等),即使本身没有GPS

    2025年8月23日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号