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

 


Dernière réponse
Sujet : Problème sur une fonction C++ de base...
Roswell_ C'est clair c'est super sprintf() j'm'en sert partout.
il y a aussi atoi() pour faire l'inverse.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Roswell_ C'est clair c'est super sprintf() j'm'en sert partout.
il y a aussi atoi() pour faire l'inverse.
xilebo 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"
gooopil

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

verdoux Utiliser des char * en c++ est de toute façon bizarre alors qu'il y a les classes string et strstream :)
chadenat je suis d'accird avec oh_damned le char * chaine [11] est strange
oh_damned 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
eristoff 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--

gooopil 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

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