C++下截取字符串
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。
- 上一篇:没有了
- 下一篇:没有了