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


相关推荐

  • Linux 镜像文件ISO下载地址、centos网络配置:[通俗易懂]

    Linux 镜像文件ISO下载地址、centos网络配置:[通俗易懂]Linux镜像文件ISO下载地址:http://archive.kernel.org/centos-vault/6.1/isos/x86_64/选择:CentOS-6.1-x86_64-bin-DVD1.iso下载就OK,下载后可以在虚拟机上进行运行。…

    2022年8月24日
  • 半年从转行软件测试到产品经理

    背景介绍本人一个普通二本,浪费了四年时间,毕业年龄就比同学大几岁,输在起跑线上,最可悲的是第一份工作也是随大流,完全放弃了自己的专业,什么东西也没学到,关键这一呆就是三年,浑浑噩噩过日子,根本不清楚自己的方向在哪里,想要什么样的生活!刚毕业自己就背负房贷,一个月3000多的工资,过的就是中国最底层的生活,就这样我忍耐了三年,女朋友作为其他公司的HR实在看不下自己的生活方

    2022年4月14日
  • Debug | ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。

    Debug | ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。在安装pipinstalljupyterthemes时遇到了无法快乐pip的情况:报错信息ERROR:CouldnotinstallpackagesduetoanOSError:[WinError5]拒绝访问。:’C:\\Users\\…\\AppData\\Local\\Temp\\pip-uninstall-xq6nqdvs\\jupyter-notebook.exe’Considerusingthe–useroptionorchecktheper

    2022年6月24日
  • vue中的懒加载和按需加载_vue 路由懒加载

    vue中的懒加载和按需加载_vue 路由懒加载有关Vue懒加载其实并不是想象的那么难和复杂:首先引入importVueLazyLoadfrom’vue-lazyload’;其次是使用Vue.use(VueLazyLoad,{error:require([‘./assets/404.jpg’]);loading:require([‘./assets/loading.jpg’]);});这里说下他的原理…

    2022年11月1日
  • 解决pycharm汉化后无法打开设置

    解决pycharm汉化后无法打开设置转自:https://www.52pojie.cn/thread-728816-1-1.html由于操作相对复杂,再次小白整理了一下,下载压缩包内有使用方法,一目了然链接:https://pan.baidu.com/s/1o0jcRlPy4AuNAtfsk2wvHw提取码:4l7j…

    2022年5月16日
  • node配置淘宝镜像_node配置淘宝镜像

    node配置淘宝镜像_node配置淘宝镜像node安装推荐去官网下载最新版本的,官网地址:https://nodejs.org/en/download/依照系统版本下载即可,推荐window系统下载msi格式的。下载下载直接安装下一步下一步。安装成功了以后打开cmdnode-v来检测是否安装成功cnpm安装由于我们被墙的厉害,所以使用npm下载模块时候会发现效率真的很慢,所以推荐淘宝的镜像,安装说明推荐:$npmins

    2022年8月31日

发表回复

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

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