Răspuns :
#include <iostream>
using namespace std;
int main()
{
int inceput=0, sfarsit=0; //'inceput' -> index inceputul cuvantului; 'sfarsit' -> index sfarsitul cuvantului
char sir_caractere[101] = {}; //lista in care se salveaza sirul de caractere
cout << "Scrie sirul de caractere: "; //afiseaza mesaj
cin.getline(sir_caractere, sizeof(sir_caractere)); //citeste sirul
for(sfarsit; sfarsit<101; sfarsit++) //in bucla for o sa numar cate litere sunt in fiecare cuvant
{ //ma folosesc de variabilele 'inceput' si 'sfarsit'
if((sir_caractere[sfarsit] == ' ') || (sir_caractere[sfarsit] == '\0')) //daca iterand prin caracterele din 'sir_caractere' ajung la
{ //un caracter -spatiu- ' ' sau -null- '\0' (am un cuvant)
if(((sfarsit - inceput) % 2 > 0) && ((sfarsit - inceput) > 1)) //incerc sa aflu daca cuvantul are un numar impar de litere
{ //si daca are mai mult de 1 litera
sir_caractere[(inceput + ((sfarsit - inceput - 1) / 2))] = '#'; //inlocuiesc caracterul din centru cuvantului cu caracterul '#'
}
inceput = sfarsit + 1; //reimprospatez variabila 'inceput' (ca programul sa tina minte de unde incepe urmatorul cuvant)
}
}
for(int i=0; i<101; i++) //afisez toate caracterele din 'sir_caractere' inafara de caracterul '#' (pentru ca '#' este litera din centrul cuvintelor impare)
{
if(sir_caractere[i] != '#')
{
cout << sir_caractere[i];
}
}
cout << endl;
return(0);
}