Выделить из строки название последнего каталога - C (СИ) (77676)
Формулировка задачи:
Разработать программу. Максимальная длина строк не менее
80 символов. При реализации программы необходимо использовать функции для обработки
строк из библиотек stdlib.h и string.h.
Дана строка, содержащая полное имя файла. Выделить из строки название
последнего каталога (без символов "\"). Если файл содержится в корневом
каталоге, то вывести символ "\".
Решение задачи: «Выделить из строки название последнего каталога»
textual
Листинг программы
#include <stdio.h>
using namespace std;
char str[500];
int l, r;
int main()
{
gets(str);
for (int i = 0; str[i] != 0; i++)
if (str[i] == 92) // Если текущий символ - \
l = r, r = i; // меняем границы последней директории
if (r > 0) // Проверяем случай корневого каталога
l++;
else
r = 1;
for (l; l < r; l++)
printf("%c", str[l]);
}
Объяснение кода листинга программы
- Вводится строка с помощью функции gets(str).
- Инициализируются две переменные l и r, которые будут использоваться для отслеживания границ последней директории.
- Происходит итерация по каждому символу строки.
- Если текущий символ равен 92 (это символ обратной косой черты), то меняются значения переменных l и r, чтобы определить границы последней директории.
- Если r больше 0, то это означает, что мы находимся в корневом каталоге, и мы увеличиваем значение l на 1.
- Если r равно 0, то мы находимся в последнем каталоге, и мы присваиваем значение r равным 1.
- Выводится последовательность символов с помощью цикла for, начиная с l и заканчивая r.