Stringa di lunghezza massima
Buongiorno,
il codice che segue DOVREBBE
prendere in input 5 parole (e lo fa), stamparle dopo averle inserite (e lo fa), e poi stampare la parola più lunga.
Ho impostato l'esercizio usando le strutture, ma se avete altri suggerimenti sono ben accetti!
Venendo a noi, il mio problema principale è stampare la parola massima, fuori dal ciclo for. Infatti per adesso riesco a farla stampare nel for...ma ovviamente ne stampa più di uno. Ho provato ad assegnare un valore tipo max=matrice.parola ma il programma si impalla quindi presumo che il c non accetti una cosa del genere... Credo di avervi detto tutto, attendo ansiosa
#include
#include
#include
struct parole{
char parola[20];
};
int main(){
struct parole matrice[5];
printf("Inserisci 5 parole\n");
int i=0;
for(i=1;i<=5;i++){
scanf("%s", &matrice.parola );
//printf("%s\n", matrice.parola);
}
getchar();
getchar();
for(i=1;i<=5;i++){
strlen(matrice.parola);
printf("Lunghezza parola %i: %d\n", i, strlen(matrice.parola));
}
getchar();
for(i=1;i<=5;i++){
if(strlen(matrice.parola)>strlen(matrice[i+1].parola))
{
printf("\n%s", matrice.parola);
}
};
//printf("\n%s", parola_max);
getchar();
getchar();
getchar();
getchar();
}
;
il codice che segue DOVREBBE

Ho impostato l'esercizio usando le strutture, ma se avete altri suggerimenti sono ben accetti!
Venendo a noi, il mio problema principale è stampare la parola massima, fuori dal ciclo for. Infatti per adesso riesco a farla stampare nel for...ma ovviamente ne stampa più di uno. Ho provato ad assegnare un valore tipo max=matrice.parola ma il programma si impalla quindi presumo che il c non accetti una cosa del genere... Credo di avervi detto tutto, attendo ansiosa

#include
#include
#include
struct parole{
char parola[20];
};
int main(){
struct parole matrice[5];
printf("Inserisci 5 parole\n");
int i=0;
for(i=1;i<=5;i++){
scanf("%s", &matrice.parola );
//printf("%s\n", matrice.parola);
}
getchar();
getchar();
for(i=1;i<=5;i++){
strlen(matrice.parola);
printf("Lunghezza parola %i: %d\n", i, strlen(matrice.parola));
}
getchar();
for(i=1;i<=5;i++){
if(strlen(matrice.parola)>strlen(matrice[i+1].parola))
{
printf("\n%s", matrice.parola);
}
};
//printf("\n%s", parola_max);
getchar();
getchar();
getchar();
getchar();
}
;
Risposte
"vict85":
[quote="Obidream"]Si in effetti... potrebbe essere un pezzo di altro programma dove serviva un altro FILE e magari tagliando ed incollando se lo ha dimenticato...
Sinceramente penso che ifp stia per "input file pointer" e ofp stia per "output file pointer". Quindi immagino abbia una sorta di template per questo tipo di programmi.[/quote]
Hai fottutamente ragione

Circa il problema esposto in partenza... Credo sia risolvibile con le struct fissando l'indice, l'ho fatto oggi al mio esame ed ha funzionato
Anche se l'esercizio richiesto non era proprio uguale

"laska":
Circa il problema esposto in partenza... Credo sia risolvibile con le struct fissando l'indice, l'ho fatto oggi al mio esame ed ha funzionatoAnche se l'esercizio richiesto non era proprio uguale
Ho mostrato come usare un array bidimensionale per farlo in pagina 2.

sì, ho visto...Io ho usato le struct, sfruttando quello che hai fatto tu con l'array bidimensionale
Grazie vict85!

Grazie vict85!
Alla fine hai avuto ragione con le struct


Eh sì, mi ci ero affezionata ;D