Problème dans un exo

man r. Messages postés 12 Statut Membre -  
fiddy Messages postés 11653 Statut Contributeur -
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

fiddy Messages postés 11653 Statut Contributeur 1 847
 
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];
0