[C]Dubbio sull'utilizzo di una struttura.

di il
2 risposte

[C]Dubbio sull'utilizzo di una struttura.

Salve. Ho svolto un esercizio che tra le varie richieste mi chiede di inserire un certo numero di parole ed inserirle in una matrice, poi devo affiancare a questa matrice un vettore che riporti il numero di doppie presenti in ogni parola. Vi posto il codice che, premetto, funziona perfettamente


/* dove num_string è una variabile intera  il cui contenuto è stato precedendtemente acquisito e contiene il numero di stringhe da acquisire. i e j sono due indici interi per scorrere la variabile   char matrice[][] che contiene le parole e il vettore di interi vett_dopp[] che contiene il numero di doppie della parola che si trova nella riga i-esima della matrice, nella sua posizione i-esima*/


for(i=0; i<num_string; i++){
       for(j=0; j<strlen(matrice[i])-1; j++){
           if(matrice[i][j]==matrice[i][j+1])
             vett_dopp[i]++;
       }
    }

    for(i=0; i<num_string; i++){
       printf("\n la parola %s contiene %d doppie", matrice[i], vett_dopp[i]);
    }
Un esercizio successivo mi chiede di modifcare la richiesta dell'esercizio precedente, che vi ho sopra descritto, utilizzando una struttura. Vi posto il codice che ho scritto


/*struttura da utilizzare fornita dal testo dell'esercizio*/
typedef struct linea{           
        char parola[M];       
        int ripetizione;
}Linea;

int main()
{
 /*nstr è il numero di parole precedentemente acquisito, i e j sono due indici interi, vett[] è un vettore di tipo Linea*/


            for(i=0; i<nstr; i++){
                     for(j=0; j<strlen(vett[i].parola )- 1; j++){
                            if(vett[i][j].parola == vett[i][j+1].parola){
                            vett[i].ripetizione++;
             printf("\nLa parola %s contiene %d doppie.", vett[i].parola, vett[i].ripetizione);
        }
    }
return 0
}
Il problema è che quando compilo mi viene segnalato l'errore " error: subscripted value is neither array nor pointer" sulla riga dell'if. Io penso di aver capito che non posso scrivere
vett[j].parola. Ma allora come faccio a scorrere il campo parola della struttura alla i-esima riga carattere per carattere per vedere se ci sono doppie?
Spero di aver spiegato il mio problema in modo esaustivo. Saluti,
Francesco

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte