Переставить элементы введенной текстовой строки в обратном порядке - C (СИ)

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

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

Уважаемые. Помогите написать программу на Си: Переставить элементы введенной текстовой строки в обратном порядке. Длина строки не более 80 символов. Строка должна вводиться с клавиатуры. Буду очень благодарен =))

Решение задачи: «Переставить элементы введенной текстовой строки в обратном порядке»

textual
Листинг программы
#include<stdio.h>
#include<string.h>
void Inverse(char *beg, char *end)
{
   if (beg < end)
   {
       char buf = *beg; *beg = *end; *end = buf;
       Inverse(beg + 1, end - 1);
   }
}
 
int main()
{
   char *ps, s[100];
   fgets(s, 100, stdin);
   if (ps = strrchr(s, '\n'))
      *ps = '\0';
   Inverse(s, s + strlen(s) - 1);
   puts(s);
   return 0;
}

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

В данном коде на языке C реализована функция Inverse, которая переворачивает строку, и программа main, которая вызывает эту функцию для введённой строки.

  1. #include
  2. #include
  3. void Inverse(char beg, char end)
  4. В данной функции переворачивается строка, представленная в виде отрезка, начинающегося с beg и заканчивающегося end.
  5. Если beg меньше end, то:
    • *char buf = beg;* переменной buf присваивается значение первого символа строки `beg`
    • beg = end; первый символ строки *beg меняется на последний символ строки *end
    • end = buf; последний символ строки `endменяется на первый символ строкиbuf`
    • Inverse(beg + 1, end - 1); рекурсивный вызов функции Inverse для перевёрнутого среза строки, начиная со второго символа и заканчивая предпоследним
  6. В основной функции main:
    • *char ps, s[100];** объявление указателя ps и строки s
    • fgets(s, 100, stdin); считывание строки с помощью функции fgets
    • if (ps = strrchr(s, '\n')) проверка наличия символа новой строки в строке s
    • если символ новой строки найден, то:
    • *ps = '\0'; замена символа новой строки на символ конца строки
    • Inverse(s, s + strlen(s) - 1); вызов функции Inverse для переворачивания строки s
    • puts(s); вывод перевёрнутой строки на экран
    • return 0; завершение программы Таким образом, данный код переворачивает введённую строку с помощью рекурсивной функции Inverse и выводит её на экран.

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


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

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

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