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

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

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

Вводится строка состоящая из каких-либо слов,например: My name is qwe. Как поменять слова местами, чтобы получилось: qwe is name My. Все чего я смог добиться это поменять буквы местами.Советовали находить слова, то есть проверять наличие символов до пробела,но каким образом я должен переносить целое слово в другую строку,в правильном порядке и в нужное место,это возможно только посимвольно,но в таком случае это то же самое что делал я.Уже совсем отчаялся,есть идеи? P.S. Первый курс,так что задача должна решаться на основе простейших функций.
Спасибо за ответ.Хороший форум

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main(void)
  5. {
  6.     char str[] = "Eniki beniki eli vareniki", *p = str + strlen(str) - 1;
  7.     while (--p != str)
  8.         if (*p == ' ')
  9.         {
  10.             printf("%s ", p+1);
  11.             *p = '\0';
  12.         }
  13.     printf("%s", str);
  14.     return 0;
  15. }

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

В этом коде на языке C:

  1. Объявлена строка символов str со значением Eniki beniki eli vareniki.
  2. Выделен указатель p на последний символ строки str.
  3. В цикле while происходит перебор символов строки str в обратном порядке.
  4. Если текущий символ является пробелом (*p == ' '), то:
    • В строку printf выводится следующая после пробела подстрока (p+1).
    • Пробел заменяется на нулевой символ (*p = '\0').
  5. После цикла выводится вся строка (printf(%s, str).
  6. Программа возвращает 0, заканчивая свою работу.

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


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

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

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

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

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

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