[C] Funzione che ritorna la parola di lunghezza massima
Buonasera, ho scritto questa funzione per capire tra le parole date in ingresso qual è quella di lunghezza massima, ma il compilatore mi dà errore e non capisco come mai. Potete aiutarmi?
Grazie
char MaxWord(char *A[], int N) { //*A[] sono puntatori a stringhe, quindi a parole int i; int l = A[0]; //l parola di lunghezza max for (i = 0;i < N;i++) { if (strcmp(l, A[i]) <= 0) { l = A[i]; } } return l; }
Grazie
Risposte
Per prima cosa, quando chiedi aiuto su un errore fornito dal compilatore, assicurati di postare anche l'errore mostrato dal compilatore e la riga corrispondente. Una prima cosa che osservo è che la variabile l è del tipo sbagliato. Vuoi una stringa, per cui deve essere un puntatore a char e non int. Lo stesso discorso vale per il valore di ritorno. Non vedo inoltre alcun calcolo di lunghezza, ma solo un confronto tra stringhe.
Giusto, l lo scrivo come $text(char *l=A[0];)$. Poi l'argomento del return, se $l$ è un puntatore, lo devo scrivere $text(return l;)$ o $text(return *l;)$? E un'altra cosa: per dare in ingresso più stringhe alla funzione, va bene scrivere $text(char *A[])$?
Non ci sono errori correggendo l, ho anche fatto un semplice main per verificare la funzione. Alla compilazione, però viene questa scritta: CRT_INTERNAL_LOCAL_PRINTF_OPTIONS. Come posso correggere?