begin process at 2010 02 10 08:56:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

créer les fonctions argv et argc.; (en gros)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

créer les fonctions argv et argc.; (en gros)

mardi 7 décembre 2004 à 18:57:54 | créer les fonctions argv et argc.; (en gros)

Fa7

Bonjour.
J'ai un pb..
je suis un gros debutant en c. mon pb est surement tres con mais bon...

j'ai un string que je dois analyser de la facon suivante:
(le string represente en fait une commande avec ses parametres)
je dois créer un tableau de strings qui contiendra les parametres de la commande
(en fait, faire argv et argc...)

Je bloque completement... j'ai fait un truc comme ca:


void recu_cmd (char *str, char cmd [100][100] )
{
// recuperation de la commande entrée

int i=0;
char buffer[1000];

while (str[i]!=' ')
{
buffer[i]=str[i];
i++;
}

strcpy(cmd[0],buffer);


// recuperation des parametres
int k,j;
k=1;

while (str[i]!=EOF)
{
j=0;
while (str[i]!='|')
{
buffer[j]=str[i];
i++;
j++;
}
strcpy(cmd[k],buffer);
k++;
}
}

ca me met pas d'erreurs mais ca marche pas... :(


Merci d'avance !!!


Fa7
++
(PS: je n'ai pas mis le code dans des balises de code parce que mon navigateur n'a pas voulu me lancer le javascript...)
mardi 7 décembre 2004 à 20:01:31 | Re : créer les fonctions argv et argc.; (en gros)

yserver

salut
je crois que ce qui suit resoudra ton pb

tout a deja ete prevu tu a meme pas a t'embetter
extrait de Le langage de Henri Garreta :
Le langage C permet de d´efinir des fonctions dont le nombre d?arguments n?est pas fix´e et peut varier d?un
appel `a un autre.

#include <stdarg.h>
int max(short n, int x1, ...) {
va_list magik;
int x, i, m;
m = x1;
va_start(magik, x1);
for (i = 2; i <= n; i++)
if ((x = va_arg(magik, int)) > m)
m = x;
return m;
}

pdf telechargeable sur developpez.com la page qui traite du pb est la 47
mardi 7 décembre 2004 à 20:20:00 | Re : créer les fonctions argv et argc.; (en gros)

Fa7

C'est pas exactement ca.
je vais donner un ex de ce que ca doit faire..

recu_cmd("toto para1 para2 para3",comm)

=> comm doit contenir les valeurs suivantes:
toto
para1
para2
para3


voila !!
ca parait pas difficile comme ca..
Mais moi je viens du monde Pascal/ Ada ou tout est tres clair et lisible.; alors j'ai un peu de mal avec le C...

mercredi 8 décembre 2004 à 01:34:15 | Re : créer les fonctions argv et argc.; (en gros)

redwings

salut, si j'ai bien compris ton probleme c'est que tu veux diviser la chaine de caractere mot par mot (argv[i] de 0 à argc) et donner le nombre de mot (argc+1) ???
mercredi 8 décembre 2004 à 01:35:00 | Re : créer les fonctions argv et argc.; (en gros)

redwings

salut, si j'ai bien compris ton probleme c'est que tu veux diviser la chaine de caractere mot par mot (argv[i] de 0 à argc-1) et donner le nombre de mot (argc) ???
mercredi 8 décembre 2004 à 01:44:20 | Re : créer les fonctions argv et argc.; (en gros)

redwings

si ce que tu veux est ce qui est en dessus alors utilise cette procedure :

avant de passer à cette procedure il faut preciser pos qui est la position de l'espace avec la commande
ptr=strrchr(phrase,' ');
"ptr" pointe sur le dernier espase de la variable phrase (ptr et phrase de type char*
alors pos=ptr-phrase+1

il faut alors faire une boucle, ta chaine à diviser est la variable chaine, mot1 sera la chaine sans le dernier mot et mot2 est le
argv[argc-1], jusqu'à arriver à argv[0] à l'aide d'un compteur

void diviser(char *chaine, char *mot1, char *mot2, int pos) {
int j=0;

while (j<pos-1) { /* atteindre le i-1 eme caractère */
*mot1=*chaine; /* copier de 0 à i-1 dans mot1 */
mot1++;
chaine++;
j++ ; }
*mot1='\0';
chaine++; /* ignore le i eme caractère qui l'espace */

while (*chaine) {
*mot2=*chaine; /* copier de i+1 à strlen(chaine) dans mot2 */
mot2++;
chaine++; }
*mot2=' '; /* ajouter une espace à la fin de "mot2" */
mot2++;
*mot2='\0';
}

j'espere que cela t'aidera ;)
mercredi 8 décembre 2004 à 07:27:44 | Re : créer les fonctions argv et argc.; (en gros)

Fa7

ouaip !! c ca que je veux !!
mais qd je le teste, j'ai une erreur "violation d'acces a l'adresse blabla.." sur la ligne

*mot1=*chaine; /* copier de 0 à i-1 dans mot1 */


j'utilise c++builder..


je craque ....

merci en tout cas !!
mercredi 8 décembre 2004 à 08:49:02 | Re : créer les fonctions argv et argc.; (en gros)

Fa7

Réponse acceptée !
c'est bon.. j'avais pas fait de malloc.. le truc que tu peux pas inventer comme ca..

ah la la... le C...

merci beaucoup en tout cas !!

++

Fa7


Cette discussion est classée dans : buffer, créer, str, argv, cmd


Répondre à ce message

Sujets en rapport avec ce message

Conversion ANSI >>> Unicode [ par Stormy ] Suite aux réponses précédement postées pour la question première (conversion CHAR en UNICODE) je n'est pas trouvé véritablement de solution adéquate.S argc et argv[] [ par shadow1779 ] bon voila, qqn pourrait t'il mexpliquer comment on fait avec argv[] afin par exemple de ne selectionner que le deuxieme mot dans une chaine de caracte copier une valeur dans une structure [ par Kurpeus1 ] Bonjour, désolé de reposer la question mais j'ai un soucis depuis plusieurs jour et je n'arrive pas a le résoudre. Il me semble pourtant que pour un d buffer pour editeur de texte [ par dyroj ] hello all, je voudrai créer un editeur de texte, et pour cela j'ai besoin d'un buffer(une variable char) qui contiendra toute la taille du fichier(qui créer un fichier à partir dun buffer [ par tylenchuz ] bonjour a tous,j'aurais une petite question rapide pour ceux qui savent :j'ai un "unsigned char * buffer" qui pointe sur une suite de données récupéré Aide pour un problème de string ! [ par florian138 ] Bonjour,Je dois créer un programme en C++ dans lequel j'ouvre un fichier je lis les données que je met ensuite dans un "char" du nom de buffer...Dans conversion string et char, probleme [ par flowneo ] Bonjour, soit le code suivant, qui convertit une chaine string en char: #include #include #include using namespace std; int main (){ string com créer un exe [ par Arimane1 ] Bonjour, Je viens de télécharger un fichier .zip dans la catégorie réveil... Et dans ce fichier compresser il y en a pleins d'autres.. Alors voila, co fread & fwrite [ par mosted ] Bonjour, Etant débutant , j'ai un soucis avec un code à faire pour l'école. Nous devons lire des structures d'un fichier binaire. Voici mon code [c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,480 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales