On trouve parfois itoa, qui n'est pas standard, sur certains environnement Unix.
J'en ai trouvé cette implem sur le web:
Code :
- void itoa(int num, int base, char *numStr) {
- char digitString[37] = "0123456789ABCDEFGHIJKLMNIOPQRSTUVWXYZ";
- int quotient, lastDig, firstDig, temp;
- quotient = num;
- lastDig = 0;
- if (num < 0)
- quotient = -num;
- else
- quotient = num;
- do {
- numStr[lastDig] = digitString[quotient % base];
- quotient = quotient / base;
- lastDig++;
- } while(quotient != 0);
- if (num < 0) {
- numStr[lastDig] = '-';
- lastDig++;
- }
- numStr[lastDig] = 0;
- firstDig = 0;
- while (firstDig < lastDig) {
- lastDig--;
- temp = numStr[firstDig];
- numStr[firstDig] = numStr[lastDig];
- numStr[lastDig] = temp;
- firstDig++;
- }
- }
|
Mais il suffit de passer en parametre un argument numStr trop petit pour que ca merdouille, d'ou la reccomandation de ne pas l'utiliser, sauf si on veut s'amuser avec base exotique.
A+,
Message édité par gilou le 25-11-2004 à 10:26:04
---------------
There's more than what can be linked! -- Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻