Scrivi un programma in linguaggio C che prenda una stringa dall'utente e la inverta.
#include<stdio.h>
#include<string.h>

// Funzione per invertire qualsiasi sequenza che inizia con il puntatore
// begin e termina con il puntatore end
void Reverse(char* begin, char* end)
{
    char temp;
    while (begin < end) {
        temp = *begin;
        *begin++ = *end;
        *end-- = temp;
    }
}

// Funzione per invertire le parole
void ReverseWords(char* s)
{
    char* word_begin = s;

    // Limite della parola
    char* temp = s;

    // Inverti la stringa
    Reverse(s, temp);

    // Inverti ogni parola
    while (*temp) {
        temp++;
        if (*temp == '\0') {
            Reverse(word_begin, temp - 1);
        } else if (*temp == ' ') {
            Reverse(word_begin, temp - 1);
            word_begin = temp + 1;
        }
    }
}

// Codice driver
int main()
{
    char s[] = "Benvenuti su Geeksforgeeks";
    char* temp = s;
    ReverseWords(s);
    printf("%s", s);

    return 0;
}