Recherche de la plus longue chaîne dans un tableau 2D en C

J’ai écrit une fonction qui trouve la plus longue chaîne dans un tableau 2D, cela fonctionne, partiellement. Mon problème est que cela prend la première plus longue chaîne trouvée sans vérifier les autres.

Par exemple, la liste suivante de chaînes:

eke
em
ekeke
eme
e
ememeememe
emem
Ekekee
eooeeeeefe
eede

Ma fonction attrape “ekeke” (la troisième chaîne de la liste) comme la plus longue au lieu de “ememeememe”.

Voici ma fonction:

void length(char str[][MAX]) { int i = 0; for(i = 1; i  strlen(str[i-1])) { if(strlen(str[i]) > strlen(str[i+1])) { printf("%s", str[i]); break; } } } } 

LEN est une constante, sa valeur est 10.
MAX est une constante, sa valeur est 50.
Les chaînes sont données par l’utilisateur.

Merci.

Vous ne faites que comparer les chaînes précédente et suivante. Vous devez vérifier la longueur de toutes les chaînes.

 void length(char str[][MAX]) { size_t longest = strlen(str[0]); szie_t j = 0; for(size_t i = 1; i < LEN; i++) { size_t len = strlen(str[i]); if(longest < len) { longest = len; j = i; } } printf("%s", str[j]); } 

Je suppose que vous avez au moins une chaîne et que vous gérez les cas (si l'utilisateur entre moins de chaînes LEN etc. - dépend de la manière dont vous remplissez la str avec des chaînes).