view 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 source

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;
}