rassembler "long" et "char" pour débutant - C - Programmation
Marsh Posté le 16-09-2006 à 11:41:09
nini_404 a écrit : Bonjour, |
Il vaut mieux ouvrir un livre de C...
sprintf() est ton ami...
Poste le code avec lequel tu as un problème...
Marsh Posté le 16-09-2006 à 11:58:19
Voila en gros le code que je voudrais faire fait a la vas-vite donc peut etre que 1 ou 2 erreurs sont dissimulées.
Merci pour ta réponse
Marsh Posté le 16-09-2006 à 12:45:59
nini_404 a écrit : Voila en gros le code que je voudrais faire fait a la vas-vite donc peut etre que 1 ou 2 erreurs sont dissimulées. |
Déjà, une chaine, c'est "..." et non '...'. Ensuite, je ne vois pas d'utilisation de sprintf(). Tu ne veux quand même pas que j'écrive le code à ta place ?
As-tu au moins lu la doc de la fonction ?
Ceci peut aider : http://man.developpez.com/
Mais as-tu au moins essayé avec le printf() de ton code ?
Marsh Posté le 16-09-2006 à 12:49:37
merci Emmanuel D elahaye. Non je ne veux pas que tu écrives le code a ma place. j'ai tout appris jusqu'a maintenant en C sur le site du zéro qui me dis qu'une chaine de caractères est entre des '...' et je sais pas utiliser un sprintf().
Je vais lire ce que tu m'as passé
Marsh Posté le 16-09-2006 à 13:04:26
nini_404 a écrit : j'ai tout appris jusqu'a maintenant en C sur le site du zéro qui me dis qu'une chaine de caractères est entre des '...' |
J'espère que ce n'est pas sur le SdZ que tu as appris ça (ou alors, prouve le, qu'on corrige le tuto immédiatement !)
Rappel :
"chaine"
'C' : caractère.
Marsh Posté le 16-09-2006 à 14:04:55
nini_404 a écrit : j'ai tout appris jusqu'a maintenant en C sur le site du zéro qui me dis qu'une chaine de caractères est entre des '...' |
euh , non , je ne croi pas que tu a lu ca sur le SDZ. sur le site du zero on dit qu'une chaine de caractére c'est entre "..."
une chaine et un caractére , ce n'ai pas tout-a-fait la méme chose tu sais.
Marsh Posté le 16-09-2006 à 15:13:56
Arf oui mince.. vous avez raison.. c'est uniquement un caractère ou on le met entre '..'. J'avais mal lu. Merci a vous!
Marsh Posté le 18-09-2006 à 09:54:11
nini_404 a écrit : #include <stdio.h>
|
Oui, elles sont d'ailleurs tellement bien dissimulées qu'on n'arrive pas à les trouver tout de suite...
Bon, on y va pour la liste (non exhaustive) des erreurs
- 'truc' n'est pas une chaîne (mais cela a été déjà dit)
- la variable "all" sera automatiquement configurée pour stocker un seul caractère puisque le compilo croit que tu ne veux que lui mettre la valeur 0.
- le format "%c" de scanf indique à scanf qu'on ne veut saisir qu'un seul caractère or, apparemment, tu souhaiterais faire saisir une chaîne => %s
- la variable "all" contient déjà une adresse. Envoyer "&all" à "scanf" envoie donc l'adresse de cette adresse. Bon, je ne m'étends pas car il faut avoir étudié les pointeurs pour bien comprendre cette notion. Mais pour que cela marche, faut que ta ligne soit => scanf("%s", all)
- if (all == tout) => tu ne fais que comparer deux adresses et non deux chaînes. Il faut bien comprendre qu'en C, une chaîne n'existe pas en tant qu'entité manipulable. Tu ne peux que manipuler l'adresse de son début et ses caractères de façon individuelle. Donc, si tu dois comparer 2 chaînes, il te faut partir du début de chacune et comparer chaque caractère de la chaîne un à un. Heureusement, d'autres programmeurs sont passés avant toi et ont créé la fonction "strcmp()" qui permet de comparer 2 chaînes.
nini_404 a écrit : et je sais pas utiliser un sprintf(). |
Si tu sais utiliser "printf()", alors tu sais utiliser "sprintf()"
Ex:
printf("Hello\n" ) => Envoie la chaîne "Hello" à l'écran
sprintf(var, "Hello\n" ) => Envoie la chaîne "Hello" dans la variable "var' - A toi de t'arranger pour que "var" soit bien conçue pour pouvoir stocker 6 caractères plus le caractère '\0' de fin de chaîne...
Marsh Posté le 16-09-2006 à 11:39:33
Bonjour,
j'ai une partie long ( par exemple "555" ) et je voudrais la rassembler avec mon autre variable char ( par exemple "truc" ) pour former "555truc" dans une nouvelle variable. J'ai fait beaucoup de recherches, mais je n'arrive pas a trouver de mots pour ca c'est pourquoi je trouve des mauvaais résultats.
Merci a vous
Message édité par nini_404 le 16-09-2006 à 11:40:06