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