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的详细操作可点击参考这里

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • PPP之PAP与CHAP经典验证案例

    PPP之PAP与CHAP经典验证案例

  • 计算机二级Python公共基础部分

    计算机二级Python公共基础部分计算机二级Python公共基础部分011.基本数据结构与算法1.1算法的基本概念算法是一种设计好的计算序列,用来解决一类问题。算法复杂的包括:时间复杂度和空间复杂度。时间复杂度指计算工作量,空间复杂度指内存空间的要求。综合起来:如果一个算法的执行次数是T(n),那么只保留最高次项,同时忽略最高项的系数后得到函数f(n),此时算法的时间复杂度就是O(f(n))。为了方便描述,…

  • 重拾 java helloworld

    重拾 java helloworld

  • springmvc防止重复提交_java后端解决重复提交问题

    springmvc防止重复提交_java后端解决重复提交问题表单提交时需要校验数据是否已存在,如果已存在需要防止重复提交,做法比较简单,不再赘述。1.Employee类publicclassEmployee{publicintId{set;get;}[StringLength(10,MinimumLength=10)]publicstringName{set;get

  • mybatis-plus 在线激活码_在线激活

    (mybatis-plus 在线激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • linux重启mysql

    linux重启mysqllinux重启mysql的方法:1、直接使用“servicemysqldrestart”或“servicemysqlrestart”命令重启;2、使用“/etc/init.d/mysqldrestart”命令重启。1、查看mysql版本方法一:status;方法二:selectversion();2、Mysql启动、停止、重启常用命令a、重启1)、使用service启动: 1 2 servicemysqldres.

    2022年10月17日

发表回复

您的电子邮箱地址不会被公开。

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