Problème dans un exo

man r. Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
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 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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