Découpage d'une chaine de caractère

dartal Messages postés 14 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 12 février 2005 - 14 nov. 2004 à 23:10
Bpsyke Messages postés 2 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 20 février 2006 - 18 déc. 2004 à 18:22
Salut ,

J'ai un ptit problème .. je suis en train de faire un ptit shell sous linux ... et j'aimerais que l'utilisateur rentre sa commande directement suivi de l'ensemble des paramètres du style " ls -a -l" ou bien " rm -r -i" etc .... pour cela j'utilise un execvp .

Je suis donc obligé de couper ma chaine de caractère (enregistré par un gets() ) à chaque espace et de mettre tous les élèments dans un tableau ....
Malheuresement je galère un ptit peu ... kelk'un pourrait me donner un coup de main ?

merci d'avance ....

8 réponses

cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
15 nov. 2004 à 02:54
Sous Linux tu peux utiliser l'excellent librairie readline pour saisir des valeurs et les parcourir (elle est utilisée entre autres par bash et gdb).
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 nov. 2004 à 10:39
tu peux t'inspirer de ma lib BString
dans lequel tu trouveras une méthode "scinde"

++
Magic Nono: l'informagicien! 8-)
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
15 nov. 2004 à 13:19
Les Bxx tournent sous autre chose que Win32, au fait ?
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
15 nov. 2004 à 15:15
fgets (à la place de gets) et strtok
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 nov. 2004 à 15:34
Nebula> bien sur, le fait de ne pas se limiter a un environnement et de pouvoir retrouver les mêmes fonctions quelque soit la machine utilisée et son système

regarde donc globals.hpp

en fait, seules les Dxx pour les boites de dialogues
et des fonctions de BVisuel sont spécifiques à Win32/MFC,
il est prévu de faire sauter cette limitation par la suite

Magicalement
Magic Nono: l'informagicien! 8-)
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 nov. 2004 à 15:44
le fait de ne pas se limiter a un environnement et de pouvoir retrouver les mêmes fonctions quelque soit la machine utilisée et son système.....

est le principe à la base des Bxxx

Magic Nono: l'informagicien! 8-)
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 nov. 2004 à 15:44
le fait de ne pas se limiter a un environnement et de pouvoir retrouver les mêmes fonctions quelque soit la machine utilisée et son système.....

est le principe à la base des Bxxx

Magic Nono: l'informagicien! 8-)
0
Bpsyke Messages postés 2 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 20 février 2006
18 déc. 2004 à 18:22
je sui moi meme em train de faire un shell et G resolu assew facilemen ce pb

int compte_mot(char *str)
{
int i;
int nb_word;

i = 0;
nb_word = 0;
while (str[i] != '\0')
{
if ((str[i]) != ' ')
{
nb_word++;
while (str[i] != ' ' && str[i] != '\0')
i++;
i--;
}
i++;
}
return (nb_word);
}

char **my_str_to_wordtab(char *str)
{
int i;
int nb_word;
char **word;

nb_word = compte_mot(str);
word = malloc((nb_word + 1) * sizeof (**word));
if (word == 0)
exit(1);
while (*str == ' ')
str++;
for (i = 0; i < nb_word; i++)
{
word[i] = str;
while(*str != ' ' && *str != '\0')
str++;
*str++ = '\0';
while (*str == ' ')
str++;
}
word[i] = '\0';
return (word);
}

pour info cette fonction pren ta chainde de caractere (qui doi avec ete malloquE precedemen puisque lon ecrit dedan) et te renvoit un tablo a double entre que tu as juste a envoyee a execvp
voila bon courage pour la suite
0
Rejoignez-nous