C++ - копирование куска строки с конца

Тема в разделе "WASM.BEGINNERS", создана пользователем Saessie, 7 окт 2008.

  1. Saessie

    Saessie New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    29
    Есть строка

    string path = "hdjaksj/hwuiquwd/dsdghsdjh/wtyqwueyq22.exe".

    Задача состоит в том, чтобы выделить из этой строки имя файла (wtyqwueyq22.exe). То есть провести поиск от конца строки до первого слэша, и занести этот кусок (wtyqwueyq22.exe) в отдельную новую string.

    Какой функцией это делается?
     
  2. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Saessie
     
  3. Saessie

    Saessie New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    29
    dir.h - это наверно только в каком - нить виндовом компиляторе. Я юзаю g++, и там нет такого хедера. Нельзя как нить попроще через функцию, обрабатывающую строки?
     
  4. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Saessie
    Тогда юзай strrchr, такая функция должна быть.
     
  5. bigredcat

    bigredcat New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2007
    Сообщения:
    54
    Только "слеш" наверное два раза должен быть если мы о С++ говорим
    Код (Text):
    1. string path = "hdjaksj//hwuiquwd//dsdghsdjh//wtyqwueyq22.exe".
    В рамках поставленного вопроса можно использовать и функцию
    Код (Text):
    1. <string.h>
    2. char *strrchr(const char *string, int c);
    Возвращает указатель на последнее вхождение символа c в строку string, если символ не найден - NULL.
    Думаю это чуть быстрее будет, но предложение crypto более универсальное.
     
  6. Saessie

    Saessie New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    29
    Смотрите:
    2 слэша необязательны.
    У меня const char *string должно быть string.
    Ну а как я скопирую в другой string кусок от того места, на которое мне укажет strrchr, до конца строки?
     
  7. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    string s = path.substr(path.find_last_of('//')); ?
     
  8. Saessie

    Saessie New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    29
    все, разобрался, спасибо. Буду юзать
    string s = path.substr(path.find_last_of('/'+1));

    +1 надо чтобы в имени файла не было начального слэша