Ragazzi buonasera, forse buonanotte visto l'orario. Ho un piccolo codice da sviluppare (completato anche se vogliamo) ma manca l'output finale.
La traccia è questa: Sviluppare una function C che, data come parametro di input una stringa che rappresenta un testo in italiano, determina e restituisce come parametri di output la parola di lunghezza massima contenuta nel testo e la sua lunghezza. Nel testo le parole sono separate da un unico spazio.
La Void che ho scritto funziona e calcola il massimo così come la parola più grande solo che non ritorna al main. Qual'è il problema?
scusate per i vari printf inutili ma servivano per capire come procedeva l'algoritmo.
La traccia è questa: Sviluppare una function C che, data come parametro di input una stringa che rappresenta un testo in italiano, determina e restituisce come parametri di output la parola di lunghezza massima contenuta nel testo e la sua lunghezza. Nel testo le parole sono separate da un unico spazio.
La Void che ho scritto funziona e calcola il massimo così come la parola più grande solo che non ritorna al main. Qual'è il problema?
scusate per i vari printf inutili ma servivano per capire come procedeva l'algoritmo.
#include <stdio.h>#include <stdlib.h>
void massimo(char testo[],char* parolamax, int* lunghezzamax)
{
char *token,separatori[]={',',' '};
int m;
//char *parolamax;
token=strtok(testo,separatori);
m=strlen(token);
printf("la m temporanea e'%d\n", m);
lunghezzamax=m;
printf("la lunghezzamax temporanea e'%d\n", lunghezzamax);
parolamax=token;
printf("la parola temp max e' %s\n", parolamax);
while(token=strtok('\0',separatori))
{
printf("la m temporanea e'%d\n", m);
m=strlen(token);
if (m>lunghezzamax)
{
lunghezzamax=m;
printf("la lunghezzamax temporanea e'%d\n", lunghezzamax);
parolamax=token;
printf("la parola temporanea e'%s\n", parolamax);
}
}
printf("la lunghezza e'%d\n", lunghezzamax);
printf("la parola e'%s\n", parolamax);
}
int main()
{
int lunghezzamax=0;
char *parolamax;
char testo[100];
gets(testo);
massimo(testo,&parolamax,&lunghezzamax);
printf("il max e' %d\n", lunghezzamax);
printf("la parola piu' lunga e' %c\n", parolamax);
return 0;
}