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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • traceroute 安装及使用

    traceroute 安装及使用1.pc端下载traceroute-2.1.0-6.fc28.x86_64.rpm文件;https://rpmfind.net/linux/rpm2html/search.php?query=traceroute(x86-64)2.将安装包上传到centos主机使用rz命令3.执行rpm-ivhtraceroute-2.1.0-6.fc28.x86_64.rpm命令进行安装4…

    2022年6月20日
    397
  • (一)线程管理_3—中断一个线程

    (一)线程管理_3—中断一个线程

    2021年9月2日
    75
  • 如何保证docker2375端口的安全

    如何保证docker2375端口的安全情景再现:之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口。由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,今天我们来聊聊如何解决这个问题。问题产生的原因首先我们要明白问题产生的原因,才能更好地解决问题!Docker为了实现集群管理,提供了远程管理的端口。DockerDaemon作为守护进程运行在后台,可以执行发送到管理端口上的Docker命令。当我们修改do

    2022年6月13日
    219
  • idea如何配置jdk环境(安装jdk如何配置环境变量)

    IntelliJIDEA是支持JAVA开发得一种IDE安装它需要下载后逐步安装,没什么难点,但是最后会需要一个注册码,网上找个几个都提示过期了。但是从http://idea.lanyus.com/可以在线生成但是它提示注册码无效可以但是试过之后仍然不行,所以我去掉这两句话就可以了。然后需要安装JDK和配置环境变量一.下载JDK1.去jdk官网地址:http:…

    2022年4月10日
    192
  • JDK安装与环境变量配置(WIN7)

    JDK安装与环境变量配置(WIN7)1 下载 JDK 可直接百度搜 2 双击运行 3 点击下一步 4 路径默认即可 无须改动点击下一步 安装 jdk5 路径不需改动 点击下一步 安装 jre6 安装完成 点击关闭 7 安装完成后在相应的安装路径下 C ProgramFiles Java 应包含两个文件夹 如图 8 安装完成后 配置环境变量 nbsp nbsp 计算机 属性 高级系统设置 高级 环境变量 9 点击系统变量 新建 10 新建 JAVA HOME 变量 变量

    2025年8月24日
    2
  • ubuntu svn命令 tab补全(linux安装svn客户端)

    ubuntuSVN命令大全1、将文件checkout到本地目录svncheckout path(path是服务器上的目录)例如:svncheckoutsvn://192.168.1.1/pro/domain简写:svnco2、往版本库中添加新的文件svn add file例如:svn add test.php(添加te

    2022年4月11日
    57

发表回复

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

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