Non c'è neanche bisogno che spieghi come funziona, si capisce benissimo dal codice. Ma comunque: Conta quante lettere ci sono, quanti spazi ci sono e da in output le lettere inserite. Il sorgente:
codice:
#include <iostream>
using namespace std;

int main () {
    
    char parole[100];
    int i, spazi=0, lettere=0;
    
    while (parole[i]!='.') {
        
    for (i=0;i<100;i++) {
        cout <<"Inserisci una lettera. Per inserire uno spazio digita '-'. Termina inserendo il punto."<<endl;
        cin >> parole[i];
        if (parole[i]=='-')
            spazi++;
        else
            lettere++;
        if (parole[i]=='.') {
            lettere--;
            break;
        }
    }
    }
    
    cout <<"Ci sono "<<spazi<<" spazi e "<<lettere<<" lettere. Hai inserito le seguenti lettere:"<<endl;
    
    for (i=0;i<100;i++) {
        cout <<parole[i];
        cout <<" ";
    }
    
    return 0;
}
L'errore è che non entra nel ciclo for finale.. perchè? Infatti non mi da nessun output. Mi aiutereste?