Accéder au élements de argv[] - C - Programmation
Marsh Posté le 16-11-2003 à 22:15:52
yes super merci !
J'ai juste une autre question.
Comment on converti un char en un int et inversement ?
Marsh Posté le 16-11-2003 à 22:43:34
Un char unique en int : la correspondance est directe (au niveau valeur ASCII). Ca dépend du besoin ('A' vaut 65 décimal, 'a' 97).
Si c'est une chaîne de plusieurs chars, y a atoi() pour "extraire" la valeur int de la chaîne.
Pour faire une chaîne avec une valeur numérique, y a sprintf() entre autres moyens.
Marsh Posté le 16-11-2003 à 22:49:33
strtoll c'est plus mieux que atoi, qui ne permet de détecter les erreurs de manière satisfaisante.
Marsh Posté le 16-11-2003 à 23:21:36
Je me permets une autre questio parce que je suis trop motive là... c cool le C
Voilà un bout de mon programme :
Code :
|
Voila alors 2 questions :
1. c'est bien juste mon passage en paramètre ?
2. la fonction ne me retourne pas la bonne valeur (longueur du tableau de argv[1]), pourquoi ?
(elle retourne 4 quelque soit le contenu de argc[1]).
Marsh Posté le 16-11-2003 à 23:34:38
arf, t'as encore une vision utopiste du C, genre un langage qui peu t connaitre la taille de ses tableau....
bin nan le C il sait pas ca, ton truc c'est tout faux. Bon, vu que ton argv[] c'est des chaines de caracteres utilise strlen() pour faire ce que tu veux
Marsh Posté le 16-11-2003 à 23:48:13
chrisbk a écrit : arf, t'as encore une vision utopiste du C, genre un langage qui peu t connaitre la taille de ses tableau.... |
ok ca marche avec ta solution...
Mais c'est possible de le faire avec une fonction comme je l'ai fais ?
Marsh Posté le 16-11-2003 à 23:53:35
greeeg a écrit :
|
1. oui, tu vas bien récupérer la chaine en question dans ta fonction
2. Tu entres dans la partie obscure et buggante du C.
en faisant l'équivalent de sizeof(char []) tu mesures en fait la taille d'un pointeur (la taille du pointeur vers le premier élément du tableau). sizeof mesure en octets la place prise par un élément du type passé en paramètre. Toi tu voulais le nombre de cases du tableau passé en paramètre, chose impossible à mesurer en C. C'est pourquoi on utilise le fait que dans ton cas présent c'est en fait la longueur d'une chaine de caractères que tu veux, et il existe une fonction pour ça, strlen, mais à utiliser avec des précautions, car le système est très fragile :
Code :
|
Je ne rentre pas dans les détails des chaines de caratères, les autres réponses le feront probablement, mais c'est dans un bouquin qu'il faut regarder.
Marsh Posté le 16-11-2003 à 18:24:41
Bonjour,
je suis entrain de me faire un petit programme en C, histoire de ne pas mourir idot, et j'ai un petit problème.
Pour mon programme, j'aimerais que l'utilisateur entre les paramètre en arguments :
c:\> prog.exe salut toi
Dans mon programme je sais que si je fais :
Alors il va me sortir
Maitenant j'aimerais accéder (et plus tard stocker) au éléments de argv[1] p.ex. afficher que le "a" de salut
Cad que j'aimerais pouvoir dire (mais c la que je comprends pas)
un truc du genre :
char a = "le ième élément de argv[1]".
Je vous remercie beaucoup