Esercizio Array - soluzione errata - C++

di il
16 risposte

16 Risposte - Pagina 2

  • Re: Esercizio Array - soluzione errata - C++

    Se la FRASE inizia con la PAROLA funziona, vero?

    In ogni caso il problema è qui: while(parola==frase).
    Per esempio cosa succede se dal for soprastante arriva i=3?

    P.S.
    Come stai gestendo gli spazi tra una parola e l'altra nella FRASE?
    Dal momento che utilizzare spazi bianchi non è facile, ti suggerisco di utilizzare come separatore un determinato carattere, per esempio il trattino basso.

    P.P.S.
    Per accelerare l'input ti suggerisco di rimuovere la variabile continua e di interrompere l'inserimento se viene inserito un determinato carattere, per esempio il punto.
  • Re: Esercizio Array - soluzione errata - C++

    Perchè non crei un nuovo post, invece di modificare quelli vecchi?

    In ogni caso la parte relativa al conteggio può essere semplificata nel seguente modo:
    int j;
        for(int i = 0; i < n; ++i)
        {
            for(j = 0; j < m; ++j)
            {
                if(parola[j] != frase[i + j])
                {
                    break;
                }
            }
            if(j == m)
            {
                ++nparole;
            }
        }
    A questo punto però se non vuoi andare a leggere aree di memoria che nulla c'entrano con la frase inserita, devi ragionare su quanto già detto più volte nei precedenti post:

    Per quanto riguarda la ricerca della parola nella frase, il tuo non mi sembra l'approccio migliore. Quello che farei è scorrere la frase dall'inizio finché c'è la possibilità effettiva di trovare la parola... mi spiego meglio, consideriamo
    PAROLA: panettone
    FRASE: buon natale
    nello scorrere la FRASE possiamo tranquillamente fermarci alla lettera "o", in quanto andando oltre non c'è lo spazio materiale per contenere la PAROLA "panettone".


    Hai letto il P.S e il P.P.S. del mio precedente post?
Devi accedere o registrarti per scrivere nel forum
16 risposte