Je suis relativement nouveau en C/C++ et j'apprends des arguments de ligne de commande. J'essaie de trier mes arguments de ligne de commande en utilisant strcpy, mais cela me donne une mauvaise sortie. par exemple.Impossible de trier les arguments de ligne de commande à l'aide de strcpy
i/p: je suis
o/p: ami i
Quelqu'un peut-il me aider sur ce que je fais mal ici? Veuillez noter que je ne lance ce programme que pour argc = 3 et que je ne lance ce code que pour les entrées (qui seront triées) comme indiqué dans l'exemple ci-dessus. Je viens de supprimer les boucles pour le débogage.
#include "iostream"
#include "cstdlib"
#include "cstring"
using namespace std;
int main (int argc, char **argv)
{
char temp[100];
//sorting my command line arguments
if(strcmp(argv[1],argv[2])>0)
{
strcpy(temp,argv[1]);
strcpy(argv[1],argv[2]);
strcpy(argv[2],temp);
}
cout<<argv[1]<<endl;
cout<<argv[2]<<endl;
return 0;
}
Les tailles des arguments de la ligne de commande ne changent pas automatiquement, donc vous ne pouvez pas les copier comme cela (à moins qu'ils n'aient tous la même longueur). – Galik
@CroCo Je compare d'abord les cordes et sur la base de ce que je suis permutation/tri. – siddyi
@Galik alors comment puis-je trier les arguments de longueurs variables? – siddyi