diff options
Diffstat (limited to 'rushs/evalexpr/my_itoa/my_itoa.c')
| -rw-r--r-- | rushs/evalexpr/my_itoa/my_itoa.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/rushs/evalexpr/my_itoa/my_itoa.c b/rushs/evalexpr/my_itoa/my_itoa.c new file mode 100644 index 0000000..cbb6f73 --- /dev/null +++ b/rushs/evalexpr/my_itoa/my_itoa.c @@ -0,0 +1,38 @@ +#include "my_itoa.h" + +char *my_itoa(int value, char *s) +{ + if (value == 0) + { + s[0] = '0'; + s[1] = '\0'; + return s; + } + char *head = s; + if (value < 0) + { + s[0] = '-'; + s++; + value = -value; + } + + // count numbers + int t = value; + int n = 0; + while (t > 0) + { + t /= 10; + n++; + } + + // n = number count + s[n] = '\0'; + n--; + for (; n >= 0; n--) + { + s[n] = value % 10 + '0'; + value /= 10; + } + + return head; +} |
