summaryrefslogtreecommitdiffstats
path: root/5/6.c
diff options
context:
space:
mode:
Diffstat (limited to '5/6.c')
-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