Salve. Devo creare un programma che dato un testo, deve restituire la parola più lunga e la sua lunghezza, ma ho un problema di puntatori. Praticamente, al printf viene stampato: (null) e la lunghezza... ma perchè longestWord diventa null? Non capisco o_O Vorrei evitare di usare variabili globali...
codice:
#include <stdio.h>
#include <string.h>
void getMaxLengthWord (char *text, char *longestWord, int *maxLength);
int main()
{
char text[] = "rosso verde blu";
char *longestWord;
int maxLength;
getMaxLengthWord (text, longestWord, &maxLength);
printf ("%s %d\n", longestWord, maxLength);
return 0;
}
void getMaxLengthWord (char *text, char *longestWord, int *maxLength)
{
int counter = 0;
*maxLength = 0;
char *word = strtok (text, " ");
while (word != NULL)
{
int length = strlen (word);
if (length > *maxLength)
{
*maxLength = length;
longestWord = word;
}
word = strtok (NULL, " ");
}
}