Усечение строки - PullRequest
       1

Усечение строки

1 голос
/ 15 августа 2011

У меня есть

char *path;

, и я храню строку «/home/juggler/file1.txt» в пути.Как мне обрезать путь, чтобы у меня был родитель последнего файла / каталога?В примере я хотел бы обрезать путь к "/ home / juggler"

Я думал о подсчете количества символов (количество) от конца до последнего "/" и копировании (длинапуть) - (количество) к другой строке.

Спасибо

Ответы [ 2 ]

4 голосов
/ 15 августа 2011

Попробуйте dirname(3), поскольку вы работаете в Linux.Будучи определенным SUSv3 , он вполне переносим.

char *dirname(char *path);

В обычном случае dirname () возвращает строку до, но не включая, окончательного символа '/'.

1 голос
/ 15 августа 2011

Вы действительно должны использовать dirname() в libgen.h

#include <libgen.h>
#include <stdio.h>

int main()
{
    printf("%s\n", dirname("/home/juggler/file1.txt"));
    return 0;
}

Для получения дополнительной информации прочитайте справочную страницу для dirname.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...