Le tri par ordre ascii
Résolu
Sabetodo
Messages postés
127
Statut
Membre
-
Sabetodo Messages postés 127 Statut Membre -
Sabetodo Messages postés 127 Statut Membre -
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:
Ex :
$>./a.out test "Ceci est un test " retest | cat -e
./a.out$
Ceci est un test $
retest$
test$
$>
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$
$>
A voir également:
- Code ascii 31 2b 3f 3d 39
- Code ascii - Guide
- Code ascii : 37 2d 3f 3d 31 réponse ✓ - Forum Loisirs / Divertissements
- Code ascii 34 2d 3f 3d 31 - Forum Programmation
- +33 9 48 26 51 39 ✓ - Forum Mobile
- *31 - Guide
4 réponses
Bonjour
Il y a (au moins) un problème au niveau de ta comparaison :
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)
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)