Язык Си. Найти самое длинное слово в стpоке символов, перевернуть его и вывести текст

На языке Си. Найти самое длинное слово, перевернуть его и вставить обратно. Программа только находит длинное слово, Введите текст: Привет самый большой мир

Самое длинное слово: большой

Доделать ее, чтобы она, это слово перевернуло и вставило обратно Введите текст: Привет самый большой мир

Самое длинное слово: большой

Переделанный текст: Привет самый йошьлоб мир

#include <stdio.h>
#include <string.h>
#include <locale.h>
main() {
system("chcp 1251"); // Переходим в консоли на русский язык
setlocale(LC_ALL, "Rus");//Подключение рус.яз.
char s[100]; // Массив символов 
int i, id, max, count, len; // Создаем переменные.
printf("\nВведите текст:\n"); // Выводим сообщение.
gets(s); // Запись введенного слова в массив "s"
len = strlen(s);
max = 0; // Длина самого длинного слова
id = 0; // Индекс начала самого длинного слова
count = 0;
for (i=0; i<len; i++) //Создание цикла подсчета 
    if (s[i] != ' ') count += 1; //Уловие деление строки на подстроки
    else {
        if (count > max) { 
            max = count;
            id = i - count;
        }
        count = 0;
    }

if (count > max) {  // Проверка последнего слова
    max = count;
    id = i - count;
}
max += id; // Сложение, совмещённое с присваиванием
printf("\nСамое длинное слово:\n"); // Выводим сообщение.
for (i=id; i<max; i++) //Создание цикла подсчета 
    putchar(s[i]); //Вывод символов по индексу
}

Ответы (1 шт):

Автор решения: Павел Ериков

У вас есть id и max вам осталось просто поменять местами первую и вторую половину слова.

Например вот так:

char temp;
for (i = 0; i < (max - id)/2; i++) {
    temp = s[id + i];
    s[id + i] = s[max - i - 1];
    s[max - i - 1] = temp;
}
→ Ссылка