Перевернуть слова в строке - C (СИ)

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

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

Ребята буду очень благодарен ) нужно написать программу которая будет "переворачивать" слова в строке

Решение задачи: «Перевернуть слова в строке»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define DELIM " ,.?!;:'-"
int main()
{
    char s[80] = "Everybody wonts to rule the world", *p, res[80];
    int i = 0, j;
    for(p = strtok(s, DELIM); p; p = strtok(NULL, DELIM)){
        for(j = strlen(p) - 1; j >= 0; --j, ++i){
            res[i] = p[j];
        }
        res[i] = ' ';
        ++i;
    }
    res[i] = '\0';
    puts(res);
    return 0;
}

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

  1. Подключение необходимых библиотек для работы со строками и вводом-выводом
  2. Объявление строки, в которой содержится предложение для переворота
  3. Объявление указателя на начало строки и на символ, который будет использоваться в качестве разделителя
  4. Объявление массива, в который будут добавляться перевернутые слова
  5. Объявление индексов для прохода по строке
  6. Начальный цикл, который будет разделять исходную строку по символам-разделителям и добавлять перевернутые слова в результирующую строку
  7. Внутренний цикл, который будет перебирать символы в текущем слове в обратном порядке
  8. Добавление символа в результирующую строку
  9. Добавление пробела в результирующую строку после каждого слова
  10. Увеличение индекса для следующего слова
  11. Увеличение индекса для следующего символа в текущем слове
  12. Завершение внутреннего цикла после обработки всех слов в текущей строке
  13. Завершение начального цикла после обработки всех строк
  14. Добавление нулевого символа в конец результирующей строки
  15. Вывод результирующей строки на экран
  16. Возврат 0, что означает успешное выполнение программы

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

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