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;
}