Problème dans un exo

Salut, mon problème est le suivant :
La consigne de l'exercice est écrire un programme C de tri d'un tableau de chaînes de caractères de la plus courte chaîne jusqu'à la plus longue chaîne, je me suis servie de la bibliothèque string.h, mais ça compile pas, le code est le suivant :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char tab[20];
    int compteur,i=0,compteur2=-1,AIDE=0,longueur;
    printf("Le nombre de chaines de caracteres a entrer");
    scanf("%d",&i);
    
    for (compteur=0;compteur<i;compteur++){
        scanf("%s",tab[compteur]);
    }
    for (compteur=0;compteur<i;compteur++){
        scanf("%s",tab[compteur]);
    } 
    for (compteur=0;compteur<i;compteur++){
        scanf("%d",strlen(tab[compteur]));
    } 
    for (compteur=0;compteur<i;compteur++){
        compteur2=compteur-1;
        while (compteur2<i-1){
             if (strlen(tab[compteur])>tab[strlen(compteur2+1])){
                  AIDE=strlen(tab[compteur]);
                  strlen(tab[compteur])=strlen(tab[compteur2+1]);
                  strlen(tab[compteur2+1])=AIDE;
             }
             compteur2++;
        }
    }
    for (compteur=0;compteur<i;compteur++){
        printf ("%s ", tab[compteur]);
    }
    system("PAUSE");
    return 0;
}

Merci d'avance pour votre aide.

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Attention a ne pas confondre chaîne de caractères avec tableau de chaine de caractzres. Il faut une deuxième dimension à ton tableau tab. Par exemple : char tab [20][50];