[C] Funzione che ritorna la parola di lunghezza massima

desterix95
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?
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
apatriarca
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.

desterix95
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[])$?

desterix95
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?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.