Le tri par ordre ascii

Résolu/Fermé
Sabetodo Messages postés 120 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 18 août 2010 - 23 janv. 2009 à 19:41
Sabetodo Messages postés 120 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 18 août 2010 - 2 févr. 2009 à 14:45
Bonjour,
salut j'essaie de faire un tri par ordre ascii des arguments recus en ligne de commande unix(ubuntu) mais je n'arrive pas.SVP, aidez-moi les gars.
voici mon code:
int   main( int argc, char **argv)
{
     int i,j;
     char*  temp;
   
   
     for(i=0; i<argc -1 ;  i++)
     {
             for(j = i+1 ; j<argc; j++)
              {
                   if(argv[ i ] > argv[ j ]) 
                     {
                          temp = argv[ i ];
                          argv[i] = argv[ j ];
                          argv[j] = temp;
                    
                      }
              }
     }
    
     for(i=0; i<argc; i++)
       {     
           my_putstr(argv[i]);
           my_putstr("\n");
       }

     return(0);
}


Ex :
$>./a.out test "Ceci est un test " retest | cat -e
./a.out$
Ceci est un test $
retest$
test$
$>

4 réponses

Bonjour

Il y a (au moins) un problème au niveau de ta comparaison :
argv[ i ] > argv[ j ]

argv[i] et argv[j] sont des pointeurs, tu compares les valeurs des pointeurs et non pas les chaines pointées
Pour comparer les chaînes pointées, il faut utiliser la fonction strcmp() (je cite de mémoire, vérifie les détails dans ton manuel C)
0