我可以从下面的行中获取一个子字符串
string filename = C:\Shaders\Test\Model\source\scene.fbx"
filename.substr( 0 , filename.find_last_of('\') );
这将是结果
C:\Shaders\Test\Model\source
现在,如果我想从最后一个“ \”到该字符串的末尾获取子字符串,
scene.fbx
我正在尝试此行。
filename.substr(filename.find_last_of('/'), filename.size() )
但是我崩溃了。
答案 0 :(得分:1)
我认为您在代码中反斜杠,因此没有有效的索引开头。尝试以下这一行:
filename.substr(filename.find_last_of('\\'), filename.size() )
答案 1 :(得分:1)
#include <iostream>
using namespace std;
int main() {
string s = "C:\\Shaders\\Test\\Model\\source\\scene.fbx";
cout<<s<<endl<<s.substr(s.find_last_of('\\')+1, s.length())<<endl;
// As @David suggested in comments, you can omit `s.length()`
cout<<s.substr(s.find_last_of('\\')+1);
}
输出
C:\Shaders\Test\Model\source\scene.fbx
scene.fbx
scene.fbx