char * strchr(const char *s, int c){ char *r; for(r = s; ; ++r){ if(*r == c) return r; if(*r == '\0') return NULL; } } char * strrchr(const char *s, int c){ char *r; char *p; for(p = s, r = NULL; ; ++p){ if(*p == c) r = p; if(*p == '\0') break; } return r; } char * strchrnul(const char *s, int c){ char *r; for(r = s; ; ++r) if(*r == c || r == '\0') return r; } size_t strlen(const char *s){ size_t r; for(r = 0; s[r] != '\0'; ++r); return r; } size_t strnlen(const char *s, size_t maxlen){ size_t r; for(r = 0; s[r] != '\0' && r < maxlen; ++r); return r; }