Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
763 connectés 

  FORUM HardWare.fr
  Programmation

  Problème sur une fonction C++ de base...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème sur une fonction C++ de base...

n°12607
gooopil
pfiew
Posté le 03-02-2001 à 16:36:28  profilanswer
 

Salut
J'ai une fonction permettant de transformer un entier en chaine de caratère à faire. Voici le prototype :
void EntVersCh(char *, int)
 
J'ai bien essayé, j'arrive à extraire chaque chiffre du nombre mais j'ai un problème de pointeur :
 
#include <iostream.h>
#include <string.h>
ss
void EntVersCh(char *chaine[11],int nb){
 int div=1000000000,i,digit;
 for(i=0;i<10;i++){
ssdigit=nb/div;
sscout<<digit<<endl;
ssstrcpy(chaine[i],(char *)digit);ss
ssssssss// c'est la que ça va pas pour convertir digit en *char
ssnb=nb-digit*div;
ssdiv=div/10;
 }
}
 
void main(){
 char *chaine[11];
 int nb;
 cin>>nb;
 EntVersCh(chaine,nb);
 cout<<chaine;
}
 
 
Merci pour l'aide

mood
Publicité
Posté le 03-02-2001 à 16:36:28  profilanswer
 

n°12612
eristoff
Posté le 03-02-2001 à 19:06:17  profilanswer
 

strcpy(chaine[i],(char *)digit);  
 
un char* est un pointeur c'est donc une adresse, en faisant comme ça tu dis que cette adresse sera la valeur de digit entre 0 et 9
 
strcpy(chaine[i],(char *)&digit);  en ajoutant & ca devrais marcher
 
par contre je ne comprends pas très bien ta façon de faire...

 

--Message édité par eristoff--

n°12613
oh_damned
Posté le 03-02-2001 à 19:40:47  profilanswer
 

cette écriture me paraît fausse :
char *chaine[11]
 
d'après ce que tu écrit chaine est un tableau de 11 pointeurs sur des char tandis que tu veux juste une chaine (c-à-d un tableau de caractères), alors si tu veux une chaine tu écrit : char *
 
de plus le code ascii de 0 est 48 celui de 1, 49 ...
donc il te suffit d'écrire une fois que tu as digit :
chaine[i] = digit + 48;ss
en déclarant digit char dès le départ

n°12618
chadenat
Posté le 03-02-2001 à 22:54:18  profilanswer
 

je suis d'accird avec oh_damned le char * chaine [11] est strange


---------------
http://www.chadenat.forez.com
n°12619
verdoux
And I'm still waiting
Posté le 03-02-2001 à 23:28:56  profilanswer
 

Utiliser des char * en c++ est de toute façon bizarre alors qu'il y a les classes string et strstream :)

n°12620
gooopil
pfiew
Posté le 04-02-2001 à 00:33:05  profilanswer
 

Verdoux a écrit a écrit :

Utiliser des char * en c++ est de toute façon bizarre alors qu'il y a les classes string et strstream :)

 





Si tu le dis, le problème c'est qu'on vient juste de commencer les classes. En tout cas merci, je vais essayer

n°12680
xilebo
noone
Posté le 04-02-2001 à 17:30:45  profilanswer
 

la fonction sprintf(char *szBuf,const char *format,[args ...]) fait ca tres bien, pourquoi réécrire une fonction qui le fait déjà ?
 
exemple :
int entier = 2;
char chaine[20];
sprintf(chaine,"%d,entier);
 
 
chaine sera egal à "2"

n°12688
Roswell_
Posté le 04-02-2001 à 18:25:44  profilanswer
 

C'est clair c'est super sprintf() j'm'en sert partout.
il y a aussi atoi() pour faire l'inverse.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Problème sur une fonction C++ de base...

 

Sujets relatifs
[PHP] Problème avec la création d'images !Delphi 5 (problème de transportabilité avec une BD locale interbase)
[ASP] Probleme avec ASPMAILHTML : probleme avec target d'un pop up ...
Problème pilote ISAM ???Probleme de java et de RMI
Base SQL[VISUAL C++] Gros problème de message windows ... URGENT !!!
[php] il faut un .dll en plus pour la fonction crypt() ?Langage C et base de registre
Plus de sujets relatifs à : Problème sur une fonction C++ de base...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR