Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <limits.h>
- #define ABS(n) n >= 0 ? n : -n
- void reverse(char *s)
- {
- char *end = s;
- while (*end)
- end++;
- end--;
- while (end > s)
- {
- char tmp = *end;
- *end-- = *s;
- *s++ = tmp;
- }
- return;
- }
- void my_itoa_v2(int numb, char *s, int min_len)
- {
- int sign = 0;
- if (numb < 0)
- sign++;
- char *start = s;
- do
- {
- int digit = (numb % 10);
- digit = ABS(digit);
- *s++ = digit + '0';
- numb /= 10;
- } while(numb);
- if (sign)
- *s++ = '-';
- for(char *ptr = start; ptr != s; ptr++)
- min_len--;
- for(int i = 0; i < min_len; i++)
- *s++ = ' ';
- *s = '\0';
- reverse(start);
- return;
- }
- int main(void)
- {
- srand(time(NULL));
- char str[256];
- my_itoa_v2(INT_MIN, str, 20);
- printf("for numb %i and min length %i result is:\n%s\n\n",
- INT_MIN, 20, str);
- my_itoa_v2(INT_MAX, str, 20);
- printf("for numb %i and min length %i result is:\n%s\n\n",
- INT_MAX, 20, str);
- for (int i = 0; i < 10; i++)
- {
- int numb = rand();
- int gape = rand() % 10;
- my_itoa_v2(numb, str, gape);
- printf("for numb %i and min length %i result is:\n%s\n\n",
- numb, gape, str);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement