#include size_t strlen(const char* str) { size_t len = 0; while (str[len]) len++; return len; } const char* strchr(const char* str, int character) { char c = (char)character; while ((*str)) { if (*str == c) { return str; } str++; } return c == '\0' ? str : NULL; } size_t strnlen(const char* str, size_t max_len) { size_t len = 0; while (str[len] && len <= max_len) len++; return len; } char* strncpy(char* dest, const char* src, size_t n) { char c; unsigned int i = 0; while ((c = src[i]) && i <= n) dest[i++] = c; while (i <= n) dest[i++] = 0; return dest; } char* strcpy(char* dest, const char* src) { char c; unsigned int i = 0; while ((c = src[i])) { dest[i] = c; i++; } dest[i] = '\0'; return dest; } int strcmp(const char* a, const char* b) { while (*a && *a == *b) { a++; b++; } return *a - *b; }