/* * string.c */ #include "main.h" void *memset(void *s, int v, int n) { register char *p = (char *)s; while(1){ if(--n<0) break; *p++ = (char)v; } return s; } void *memcpy(void *to, void *from, int n) { register char *t = (char *)to; while(1){ if(--n<0) break; *t++ = *(char*)from++; } return to; } int memcmp(void *dst, void *src, int n) { register int i; register char *s = (char*)src; register char *d = (char*)dst; for(i=0; i= '0' && c <= '9') { digit = c - '0'; } else if (c >= 'a' && c <= 'z') { digit = c - 'a' + 10; } else if (c >= 'A' && c <= 'Z') { digit = c - 'A' + 10; } else { retv = 3; break; } if (digit >= base) { retv = 4; break; } num *= base; num += digit; step: str++; nchars++; } exit: if(ret) *ret = retv; if(endptr) *endptr = str; return num; }