diff options
| author | Sadeep Madurange <smadurange@users.noreply.github.com> | 2022-01-01 14:47:32 +0800 |
|---|---|---|
| committer | Sadeep Madurange <smadurange@users.noreply.github.com> | 2022-01-01 14:47:32 +0800 |
| commit | 1fdc86998f97f32b0e3e7b10ac5d75becaee5e60 (patch) | |
| tree | 3546510bea4a9f4d746b7e186adad00012d7113c | |
| parent | 6fefd8c1430834879d9c65872f24d9e99efcd3f4 (diff) | |
| download | k&r-exercises-1fdc86998f97f32b0e3e7b10ac5d75becaee5e60.tar.gz | |
5.6
| -rw-r--r-- | 5/6.c | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -1,5 +1,6 @@ #include <stdio.h> #include <stdlib.h> +#include <string.h> int mgetline(char *s, int lim) { int i; @@ -24,4 +25,34 @@ int matoi(char *s) { n = 10 * n + (*s - '0'); return n; +} + +void reverse(char *s) { + int i, j; + + for (i = 0, j = strlen(s) - 1; i < j; i++, j--) { + s[i] = s[i] ^ s[j]; + s[j] = s[i] ^ s[j]; + s[i] = s[i] ^ s[j]; + } +} + +void mitoa(int n, char *s) { + int sign; + char *sp; + + sp = s; + + if ((sign = n) < 0) + n = -n; + + do { + *s++ = n % 10 + '0'; + } while ((n /= 10) > 0); + + if (sign < 0) + *s++ = '-'; + *s = 0; + + reverse(sp); }
\ No newline at end of file |
