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

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

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

Задано строку из трех слов. Выделить отдельные слова и записать их в обратном порядке. Вывести преобразованную строку на экран.

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

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
 
//-----------------------------------------------------------------------------
void Swap(char* a, char* b)
{
   char tmp = *a;
   *a = *b;
   *b = tmp;
}
//-----------------------------------------------------------------------------
void Reverse(char* begin, char* end)
{
   while (begin < end)
   {
      Swap(begin++, end--);
   }
}
//-----------------------------------------------------------------------------
void ReverseAllWords(char* text)
{
   char* begin;
 
   while (*text)
   {
      for (; *text && isspace(*text); ++text) { ; }
      begin = text;
 
      for (; *text && !isspace(*text); ++text) { ; }
 
      if (begin < text)
      {
         Reverse(begin, text - 1);
      }
   }
}
//-----------------------------------------------------------------------------
 
int main()
{
   char text[256] = {'\0'};
 
   printf("input text: ");
   fgets(text, sizeof(text) - 1, stdin);
 
   ReverseAllWords(text);
 
   printf("result: %s", text);
 
   return 0;
}

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


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

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

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