aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--4.12.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/4.12.c b/4.12.c
new file mode 100644
index 0000000..3e3e037
--- /dev/null
+++ b/4.12.c
@@ -0,0 +1,38 @@
+#include <stdio.h>
+
+#define MAXLEN 30
+
+char* itoa(char str[], int num);
+
+int
+main(void)
+{
+ char str[MAXLEN];
+ int num;
+
+ num = -69420;
+
+ printf("%d\n", num);
+ printf("%s\n", itoa(str, num));
+
+ return 0;
+}
+
+char*
+itoa(char str[], int num)
+{
+ static int i = 0;
+
+ if (num < 0) {
+ num = -num;
+ str[i++] = '-';
+ }
+
+ if (num/10)
+ itoa(str, num/10);
+
+ str[i++] = '0' + (num % 10);
+ str[i] = '\0';
+
+ return str;
+}