4 void memset(void *s, int c, size_t n)
12 void *memcpy(void *dest, const void *src, size_t n)
15 const char *sptr = src;
23 void *memmove(void *dest, const void *src, size_t n)
38 dptr = (char*)dest + n - 1;
39 sptr = (char*)src + n - 1;
48 char *strcpy(char *dest, const char *src)
51 while((*dest++ = *src++) != 0);
55 size_t strlen(const char *s)
62 char *strchr(const char *s, int c)
73 char *strrchr(const char *s, int c)
80 /* go back checking for c */
89 char *strstr(const char *str, const char *substr)
93 const char *s2 = substr;
95 while(*s1 && *s1 == *s2) {
107 int strcmp(const char *s1, const char *s2)
109 while(*s1 && *s1 == *s2) {
116 int strcasecmp(const char *s1, const char *s2)
118 while(*s1 && tolower(*s1) == tolower(*s2)) {
122 return tolower(*s1) - tolower(*s2);