I have a function that is supposed to find the last bit of a directory in a string. eg:
“C:\Lolcats\pie\ambulance\” should return “ambulance”. However it returns some strange characters ive never seen, like the male arrow-point symbol and some other weird stuff.
string App::getlastName(string cakes){
//finds the name of the last folder in a directory
string name;
string temp;//popback all of temp into name to invert it
cakes.pop_back();
char i = cakes[cakes.length()-1];
while (i != '\\'){
temp.push_back(cakes[i]);
cakes.pop_back();
i = cakes[cakes.length()-1];
} //-1?
for (int j = 0; j<temp.length(); ++j){
name.push_back(temp.back());
temp.pop_back();
}
return name;
}
This is probably one of the worst functions i’ve ever written, but I can’t think of how else to wrangle the end off 🙁 Can someone help me please? 😀
Note that the function doesnt need to find the name of a file, it’ll just be folders.
If you remove the trailing \ off the string you can use a simple combination of rfind and substr to get the data you want.