summaryrefslogtreecommitdiffstats
path: root/5
diff options
context:
space:
mode:
authorSadeep Madurange <smadurange@users.noreply.github.com>2022-01-01 14:47:32 +0800
committerSadeep Madurange <smadurange@users.noreply.github.com>2022-01-01 14:47:32 +0800
commit1fdc86998f97f32b0e3e7b10ac5d75becaee5e60 (patch)
tree3546510bea4a9f4d746b7e186adad00012d7113c /5
parent6fefd8c1430834879d9c65872f24d9e99efcd3f4 (diff)
downloadk&r-exercises-1fdc86998f97f32b0e3e7b10ac5d75becaee5e60.tar.gz
5.6
Diffstat (limited to '5')
-rw-r--r--5/6.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/5/6.c b/5/6.c
index e151c1c..2146387 100644
--- a/5/6.c
+++ b/5/6.c
@@ -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