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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. //-----------------------------------------------------------------------------
  5. void Swap(char* a, char* b)
  6. {
  7.    char tmp = *a;
  8.    *a = *b;
  9.    *b = tmp;
  10. }
  11. //-----------------------------------------------------------------------------
  12. void Reverse(char* begin, char* end)
  13. {
  14.    while (begin < end)
  15.    {
  16.       Swap(begin++, end--);
  17.    }
  18. }
  19. //-----------------------------------------------------------------------------
  20. void ReverseAllWords(char* text)
  21. {
  22.    char* begin;
  23.  
  24.    while (*text)
  25.    {
  26.       for (; *text && isspace(*text); ++text) { ; }
  27.       begin = text;
  28.  
  29.       for (; *text && !isspace(*text); ++text) { ; }
  30.  
  31.       if (begin < text)
  32.       {
  33.          Reverse(begin, text - 1);
  34.       }
  35.    }
  36. }
  37. //-----------------------------------------------------------------------------
  38.  
  39. int main()
  40. {
  41.    char text[256] = {'\0'};
  42.  
  43.    printf("input text: ");
  44.    fgets(text, sizeof(text) - 1, stdin);
  45.  
  46.    ReverseAllWords(text);
  47.  
  48.    printf("result: %s", text);
  49.  
  50.    return 0;
  51. }

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


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

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

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы