diff src/std.c @ 2:b6182f00de82

The work I have so far
author Jonathan Pevarnek <pevarnj@gmail.com>
date Tue, 01 Mar 2011 02:39:27 -0500
parents
children 0aa0ad9e1cc3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/std.c	Tue Mar 01 02:39:27 2011 -0500
@@ -0,0 +1,72 @@
+void itoa(int n, char *a)
+{
+	if(n < 0) {
+		*a++ = '-';
+		n *= -1;
+	}
+	char *b = a;
+	if(!n) *b++ = '0';
+	for(; n; b++) {
+		*b = n%10 + '0';
+		n = n/10;
+	}
+	*b-- = '\0';
+	for(; a < b; a++, b--) { //reverse
+		char temp = *b;
+		*b = *a;
+		*a = temp;
+	}
+}
+
+int atoi(char *a)
+{
+	int neg = 0;
+	int n = 0;
+	if(*a == '-') {
+		neg = 1;
+		a++;
+	}
+	while(*a >='0' && *a <= '9')
+		n = n*10 + (*a++ - '0');
+	if(neg) n *= -1;
+	return n;
+}
+
+void sPrint(char *a)
+{
+	char *b = a;
+	while(*b && *++b);
+	putline(a, b - a);
+}
+
+void iPrint(int n)
+{
+	char string[10];
+	itoa(n, string);
+	sPrint(string);
+}
+
+int strcmp(char *a, char *b)
+{
+	while(1) {
+		if(*a - *b) return *a - *b;
+		if(*a == '\0') return 0;
+		a++;
+		b++;
+	}
+	return -1;
+}
+
+void sGet(char *a, unsigned int n) //TODO bug Jeff about getline
+{
+	int length = getline(a, n);
+	a[(length < n)?length:n - 1] = '\0';
+}
+
+int arrayLookup(char *text, const char array[][10], int last)
+{
+	int i;
+	for(i = 0; i < last; i++)
+		if(!strcmp(array[i], text)) return i;
+	return last;
+}