Dzielenie stringa na podstawie znaku

0

Witam, mam pewien problem i nie wiem z której strony go ugryźć. Ponieważ program gdy wybiorę plik, który znajduje się w tym samym katalogu co .exe to i tak dostaję pełną ścieżkę czyli C:/ itd. a chce wyciągnąć tylko to co znajduje się po osatnim .

Czyli np:
C:\Documents and Settings\Uzytkownik\Moje Dokumenty\tekst.txt

I chciałbym mieć tylko tekst.txt. Oczywiście nie proszę o gotowca, tylko pomysł na rozwiązanie. Myślałem o napisaniu funkcji w której podaje się stringa i char'a względem którego ma dzielić, potem alokuje się pamięć na stringi, których będzie tyle co wystąpień danego znaku w napisie i potem zapisywanie do tych stringów już tych podzielonych części. Pewnie da się prościej, dlatego piszę.

1

W nazwie pliku oraz katalogu pod Windowsem nie możesz użyć znaku '', więc problemu nie ma żadnego z rozdzieleniem. Mniej więcej może to tak wyglądać:

string path = "C:\\Documents and Settings\\user\\Pulpit\\pliczek.txt";
string tail = path.substr(path.rfind('\\')+1);
printf("%s\n", tail.c_str());
0

Kurde, właśnie jak wcześniej czytałem o std::string to nie znalazłem tej metody co znajduje od końca. Ale dzięki wszystko działa idealnie.

Dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1