summaryrefslogtreecommitdiff
path: root/reference/C/CONTRIB/SNIP/ord_text.c
diff options
context:
space:
mode:
Diffstat (limited to 'reference/C/CONTRIB/SNIP/ord_text.c')
-rwxr-xr-xreference/C/CONTRIB/SNIP/ord_text.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/SNIP/ord_text.c b/reference/C/CONTRIB/SNIP/ord_text.c
new file mode 100755
index 0000000..6b37721
--- /dev/null
+++ b/reference/C/CONTRIB/SNIP/ord_text.c
@@ -0,0 +1,33 @@
+/*
+** Originally published as part of the MicroFirm Function Library
+**
+** Copyright 1991, Robert B.Stout
+**
+** Subset version with modifications suggested by Maynard Hogg
+** released to the public domain, 1992
+**
+** Function to return ordinal text.
+*/
+
+static char *text[] = {"th", "st", "nd", "rd"};
+
+char *ordinal_text(int number)
+{
+ if (((number %= 100) > 9 && number < 20) || (number %= 10) > 3)
+ number = 0;
+ return text[number];
+}
+
+#ifdef TEST
+
+#include <stdio.h>
+
+void main(void)
+{
+ int i;
+
+ for (i = 0; i < 26; ++i)
+ printf("%d%s\n", i, ordinal_text(i));
+}
+
+#endif /* TEST */