入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

C++下截取字符串

创建时间:2018-01-25 投稿人: 浏览次数:1348

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

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像