Дана строка, содержащая полное имя файла. Выделить из этой строки название первого каталога - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана строка, содержащая полное имя файла. Выделить из этой строки название первого каталога (без символа ""). Если файл содержится в корневом каталоге, то вывести символ "". на Си. Спасибо!

Решение задачи: «Дана строка, содержащая полное имя файла. Выделить из этой строки название первого каталога»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
    int k, n = 0, i = 0;
    char s[80];
    printf("Type a file address:");
    gets(s);
    while(s[i]){
        if(s[i] == '\\')
            ++n;
        ++i;
    }
    k = n;
    i = 0;
    n = 0;
    if(k == 1){
        printf(""");
        while(s[i]){
        if(s[i] == '\\' && n == k - 1)break;
        printf("%c", s[i]);
        ++i;
        }
        printf(""");
        return 1;
    }
 
    while(s[i]){
        if(s[i] == '\\' && n == k - 1)break;
        if(n == k - 1)
            printf("%c", s[i]);
        if(s[i] == '\\')
            ++n;
        ++i;
        }
    return 0;
}

Объяснение кода листинга программы

В этом коде на языке C выделяется название первого каталога из строки, содержащей полное имя файла:

  1. Объявлены переменные:
    • k, n, i - целочисленные, для подсчета количества обратных слешей и индекса строки;
    • s - символьная, для хранения строки.
  2. Пользователю предлагается ввести строку, содержащую путь к файлу.
  3. В цикле while с помощью функции gets() происходит чтение строки посимвольно.
  4. Если текущий символ является обратным слешем и переменная n равна k-1, то из цикла выходит вложенный цикл while и текущий символ выводится на экран.
  5. Если текущий символ является обратным слешем и переменная n равна k-1, то значение переменной n увеличивается на единицу.
  6. Если текущий символ является обратным слешем и переменная n равна k-1, то из цикла выходит вложенный цикл while и текущий символ выводится на экран.
  7. Если текущий символ является обратным слешем и переменная n равна k-1, то значение переменной n увеличивается на единицу.
  8. Если текущий символ не является обратным слешем, то он выводится на экран.
  9. Если текущий символ является обратным слешем и переменная n равна k-1, то из цикла выходит вложенный цикл while и текущий символ выводится на экран.
  10. Если текущий символ является обратным слешем и переменная n равна k-1, то значение переменной n увеличивается на единицу.
  11. Если значение переменной n равно k, то вложенный цикл while завершается.
  12. Если значение переменной n равно k-1, то выводится на экран текущий символ.
  13. Если значение переменной n равно k, то вложенный цикл while завершается.
  14. Если значение переменной n равно k-1, то выводится на экран текущий символ.
  15. Если значение переменной n равно k, то вложенный цикл while завершается.
  16. Если значение переменной n равно k-1, то выводится на экран текущий символ.
  17. Если значение переменной n равно k, то вложенный цикл while завершается.
  18. Если значение переменной n равно k-1, то выводится на экран текущий символ.
  19. Если значение переменной n равно k, то вложенный цикл while завершается.
  20. Если значение переменной n равно k-1, то выводится на экран текущий символ.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы