rassembler "long" et "char" pour débutant

rassembler "long" et "char" pour débutant - C - Programmation

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 cité 1 fois
Message édité par nini_404 le 16-09-2006 à 11:40:06
Reply

Marsh Posté le 16-09-2006 à 11:39:33   

Reply

Marsh Posté le 16-09-2006 à 11:41:09    

nini_404 a écrit :

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.


Il vaut mieux ouvrir un livre de C...  
 
sprintf() est ton ami...
 
Poste le code avec lequel tu as un problème...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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

Message cité 2 fois
Message édité par nini_404 le 16-09-2006 à 12:16:59
Reply

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 ?


Message édité par Emmanuel Delahaye le 16-09-2006 à 12:47:09

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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é

Reply

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.


Message édité par Emmanuel Delahaye le 16-09-2006 à 13:05:05

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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.
 
 ;)


Message édité par big_dadi_fat le 16-09-2006 à 14:19:55
Reply

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!

Reply

Marsh Posté le 18-09-2006 à 09:54:11    

nini_404 a écrit :

#include <stdio.h>  

#include <stdlib.h>  
 
int main()  
{  
    long fromage = 555;  
    char lait[] = 'truc';  
 
    //la je voudrais rassembler les deux dans une variable char (par exeple "tout[]" )  
     
    char all[] = 0;  
 
    printf("Entrez 555truc" );  
    scanf("%c", &all);  
     
    if(all==tout) printf("\n\nOui voila!! c'est ca\n\n" );  
    else printf("non. ce n est pas ca\n\n" );  
 
    system("PAUSE" );  
 return 0;  
}


 
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.


Oui, elles sont d'ailleurs tellement bien dissimulées qu'on n'arrive pas à les trouver tout de suite... [:rofl]
 
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...


Message édité par Sve@r le 18-09-2006 à 10:02:46

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed