#include "my_itoa_base.h" int base_count(const char *base) { int i; for (i = 0; base[i]; i++) { continue; } return i; } char *my_itoa_base(int n, char *s, const char *base) { if (n == 0) { s[0] = base[0]; s[1] = '\0'; return s; } char *head = s; if (n < 0) { s[0] = '-'; s++; n = -n; } // count numbers int t = n; int m = 0; int b = base_count(base); while (t > 0) { t /= b; m++; } // n = number count s[m] = '\0'; m--; for (; m >= 0; m--) { s[m] = base[n % b]; n /= b; } return head; }