#include #include int get_number_length(int value){ if (value > 0 && value < 10) return 1; int clc = 0; if (value < 0) { value = value * -1; clc ++; } while (value > 10 ){ clc ++; value = value / 10; } return clc + 1; } char *my_itoa(int value){ int taille = get_number_length(value); char *rslt = malloc(taille + 1 * sizeof(char)); if (rslt == NULL) return NULL; if (value < 0){ value = value * -1; *rslt = '-'; } *(rslt + taille) = '\0'; if(value < 10){ if( *rslt == '-')*(rslt + 1) = value + 48; else *(rslt) = value + 48; return rslt; } taille --; while (taille > 0){ *(rslt + taille) = 48 +value % 10; value = value / 10; taille --; } return rslt; } /* int main(){ printf("TESTS 1 \n"); printf("%i\n", get_number_length(7)); //1 printf("%i\n",get_number_length(-97163)); //6 printf("%i\n",get_number_length(82622)); //5 printf("TESTS 2\n"); char *rslt = ""; rslt = my_itoa(-172); // "-172" printf("%s\n", rslt); free(rslt); rslt = my_itoa(2); // "2" printf("%s\n", rslt); free(rslt); rslt = my_itoa(-2829302); // "-2829302" printf("%s\n", rslt); free(rslt); }*/