Mi suggerite qualcosa?

di il
1 risposte

Mi suggerite qualcosa?

Ciao a tutti vi spiego il programma in C++:

Ho una stringa S , devo scansionare ogni lettera se c'è una vocale seguita da un'altra vocale tolgo la lettera immediatamente precedente alle due vocali scansionate.
Qualche esempio:

1) S = "aiuola" ==> S = "uola" poichè "a" è seguita da "iu" quindi va eliminata, rimane quindi "iuola". Però anche la "i" è seguita da due vocali "uo" così la "i" viene soppressa. Rimane "uola" (la "u" è seguita solo da una vocale quindi non viene eliminata). La stringa finale quindi è S = "uola".

2) S ="Ciao" ==> S ="ao" (stesso motivo di 1).
3) S = Priamo" ==> S = "piamo".
4) S = "Pippo" ==> S = "Pippo" (rimane pippo).


Vi posto il codice che ho fatto io ma ho un problema nella parte finale.
Lo spiego se non si capisce:
1) Ho trasformato la stringa S in una stringa diciamo di booleani ossia 1,0 (1 = vocali, 0 = consonanti).
2) Dopo Vorrei fare un controllo: Se ho due numeri "1" uno vicino all'altro tolgo la lettera subito a sinistra dei due numeri "1".
Aiuola = 111101 dovrebbe diventare ==> 1101.

Ecco il codice:

#include <iostream>
#include <string>

using namespace std;


void vocale(string s)
{
        int l = s.length();
        string g,h,z,y,final;



        for(int i = 0; i < l; i++)
        {
                h = s.substr(i,1);

                        if(h =="a" || h=="e" || h =="i" || h =="o" || h =="u")
                        {
                                g = g + "1";
                        }


                                else
                                {
                                        g = g + "0";
                                }

        }



cout << "G = " << g <<"\n";


                                for(int i = 1; i < l; i++)
                                {
                                        y = g.substr(i,1);
                                        z = g.substr(i+1,1);

                                        if(y == "1" && z == "1")
                                        {
                                                final = g.substr(i,l);
                                                cout << final <<"\n";

                                  
                                        }

                                        
                                }
cout <<"F = " <<  final <<"\n";

}



int main()
{
        string s = "aiuola";
        string x;

vocale(s);

return 0;
}


Ps: Ho messo qualche cout per il debugging !

Grazie delle eventuali risposte !
Devi accedere o registrarti per scrivere nel forum
1 risposte