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