//
//  Fichier : exo_05c.cxx
//
//  cree le : 29/11/1999
//
//  par      : D. Mathieu
//
//  Contenu :
//

#include <iostream>
#include <string>

#include "CExc.h"

char NouveauCar (void)
{
    char c;
    if (!cin.get (c))
    {
        cout << '.';
        return 0;
    }
    return c;

} // NouveauCar()
 
int ppal (int argc, char * argv []) throw (CExc)
{
     if (1 != argc) throw CExc (string ("Usage : ") + argv [0]);

    char c;
    char cPrev = NouveauCar();
 
    for ( ; cin.get (c) && c != '.'; )
    {
        switch (cPrev)
        {
            case 'a' :
            case 'A' :
                switch (c)
                {
                  case 'i' :
                  case 'I' : cout << 'E'; cPrev = NouveauCar (); break;

                  case 'u' :
                  case 'U' : cout << 'O'; cPrev = NouveauCar (); break;

                  default  : cout << cPrev;
                             cPrev = c;
                }
                break;

            case 'e' :
            case 'E' :
                switch (c)
                {
                  case 'i' :
                  case 'I' : cout << 'E'; cPrev = NouveauCar (); break;

                  case 'u' :
                  case 'U' : cout << 'U'; cPrev = NouveauCar (); break;

                  default  : cout << cPrev;
                             cPrev = c;
                }
                break;

            default : cout << cPrev;
                      cPrev = c;
        }
    }

    return 0;

}  //  ppal()