une fonction transformant un int en char * [C] - Programmation
Marsh Posté le 16-02-2001 à 12:08:13
Elle existe essaye itoa je sais plus j'ai pas mon bouquin sous la main mais c'est un truc dans ce genre
Marsh Posté le 16-02-2001 à 13:11:01
char chaine[256];
int entier;
sprintf(chaine, "%d", entier);
Marsh Posté le 16-02-2001 à 13:14:06
Raaaah vi les solutions les plus simples sont les meilleures. Putain je suis con des fois.
Marsh Posté le 16-02-2001 à 13:27:28
c klair j'suis trop con, j'aurais du y penser
merci beaucoup
Marsh Posté le 16-02-2001 à 16:21:58
Petite precision quand meme la fonction convertissant en char* existe : _itoa(int,char*,base);
Marsh Posté le 16-02-2001 à 16:37:08
Alors la question piege, dans la stdlib, je crois mais sans aucune certitude
Marsh Posté le 16-02-2001 à 17:25:58
Oui, c'est bien ça (dans stdlib.h) :
char *_itoa( int value, char *string, int radix );
value
Number to be converted
string
String result
radix
Base of value; must be in the range 2 – 36
A++
Marsh Posté le 16-02-2001 à 18:06:07
le mieux vu k'elle existe pas ss ttes les archi, c de coder sa propre fonction :
int get_nb_chiffre(int nbr)
{
int result;
result = 0;
if (!nbr)
return (1);
else
{
while (nbr)
{
nbr %= 10;
result++;
}
return (result);
}
}
char *int_to_str(int nbr)
{
char *buff;
char *result;
result = buff = malloc(get_nb_chiffre(nbr) + 1);
while (nbr)
{
*buff++ = '0' + nbr / 10;
nbr %= 10;
if (!nbr)
*buff = '0';
}
*buff = 0;
return (result);
}
Marsh Posté le 16-02-2001 à 19:10:30
Marsh Posté le 16-02-2001 à 23:13:50
gilou2 a écrit a écrit : char chaine[256]; int entier; sprintf(chaine, "%d", entier); |
Oui, ca c'est la pratique standard des codeurs C.
A+,
Marsh Posté le 17-02-2001 à 20:58:03
Je confirme, ça fait 10 ans que je travaille en C sous UNIX et sprintf est ce qu'il y a de plus simple et de plus portable.
@+
Marsh Posté le 16-02-2001 à 11:45:39
en gros je voudrais l'inverse de "atoi"
je suis sûr que ça existe et en plus ça me soualerait de coder ce genre de fonction
merci d'avance