Вывести название последнего каталога - C (СИ)
Формулировка задачи:
Дана строка, содержащая полное имя файла. Выделить из строки название последнего каталога (без символов ""). Если файл содержится в корневом каталоге, то вывести символ "".80 символов. При реализации программы необходимо использовать функции для обработки строк из библиотек stdlib.h и string.h и обязательно использовать функции из этих библиотек. Буду очень благодарен
Решение задачи: «Вывести название последнего каталога»
textual
Листинг программы
#include <stdio.h> #include <string.h> void PrintLastCatalog(const char * path) { char * pch, partOfPath[100] = {'\0'}; pch=strrchr(path,'/'); if (pch == NULL) puts("Error: Invalid file path."); else { strncpy(partOfPath,path,pch - path); pch=strrchr(partOfPath,'/'); if (pch == NULL) puts("\"\""); else printf ("%s\n",pch + 1); } } int main () { char path1[] = "/media/andryuha/CA90-A86A1/myText.txt"; char path2[] = "/w0rkhide.odt"; PrintLastCatalog( path1); PrintLastCatalog( path2); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с файловой системой и строками.
- Создается функция
PrintLastCatalog
, которая принимает в качестве аргумента путь к файлу. - Внутри функции создаются две переменные:
pch
- указатель на последний символ в строке пути, иpartOfPath
- строка, которая будет содержать часть пути до последнего каталога. - С помощью функции
strrchr
находится последний символ в строке пути, который является символом '/'. Если такой символ не найден, выводится сообщение об ошибке. - Если символ найден, то с помощью функции
strncpy
в строкуpartOfPath
копируется часть пути от начала до последнего каталога. - Затем снова с помощью функции
strrchr
находится последний символ в строкеpartOfPath
, который является символом '/'. Если такой символ не найден, выводится пустая строка. - Если символ найден, то выводится название последнего каталога.
- В функции
main
создаются две константные строки, которые представляют пути к файлам. - Затем вызывается функция
PrintLastCatalog
с передачей в нее первого пути. - После этого вызывается функция
PrintLastCatalog
с передачей в нее второго пути. - Программа возвращает 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д