Séparation commande arguments dans une chaîne. [ C / Unix ] - Programmation
Marsh Posté le 21-12-2001 à 13:29:49
int main(int argc, char **argv)
{
int i;
char mes_args[MAX]="";
for ( i=1 ; i<argc ; i++ )
{
strcat(mes_args, " " );
strcat(mes_args, argv[i]);
}
printf("commande : %s\n", argv[0]);
printf("mes arguments : %s\n", mes_args);
return 0;
}
Juste bidouiller pour éviter d'avoir l'espace en début de mes_args, mais je te laisse faire...
Mogi.
Marsh Posté le 21-12-2001 à 17:36:57
un petit complément au code de mogi histoire de faire ça en dynamique ça fait plus propre:
char *mes_args;
int taille=0;
int i=1;
while(argv[i]!=NULL)
taille+=strlen(argv[i]);
mes_args=new char[taille+1]; //0 de fin de chaine
A faire évidemment avant la boucle for de mogi
Marsh Posté le 21-12-2001 à 18:16:15
elle se trouve dans quel fichier header la fonction new ???
Marsh Posté le 21-12-2001 à 18:37:43
new c'est du C++, en C ca donne :
mes_args = (char *) malloc ((taille+1) * sizeof(char));
Marsh Posté le 21-12-2001 à 13:25:22
Bonjour,
j' aimerais savoir comment obtenir à partir d' une chaîne du genre "commande arguments",2 chaînes "commande" et "arguments". Je m' explique:
le programme reçoit la chaine
"toto -arg1 -arg2 -arg3"
et je veut qu' il m' affiche
commande: toto
arguments: -arg1 -arg2 -arg3
où "toto" et "-arg1 -arg2 -arg3" sont stockés dans 2 chaînes différentes.
Merci.