#include #include #include int toupper(int c) { if (c >= 'a' && c <= 'z') { return c - 0x20; } return c; } int tolower(int c) { if (c >= 'A' && c <= 'Z') { return c + 0x20; } return c; } char *strcpy(char *dest, const char *src) { size_t i; for (i = 0; src[i]; i++) dest[i] = src[i]; dest[i] = 0; return dest; } char *strncpy(char *dest, const char *src, size_t n) { size_t i; for (i = 0; i < n && src[i]; i++) dest[i] = src[i]; for ( ; i < n; i++) dest[i] = 0; return dest; } int strcmp(const char *s1, const char *s2) { for (size_t i = 0; ; i++) { char c1 = s1[i], c2 = s2[i]; if (c1 != c2) return c1 < c2 ? -1 : 1; if (!c1) return 0; } } int strncmp(const char *s1, const char *s2, size_t n) { for (size_t i = 0; i < n; i++) { char c1 = s1[i], c2 = s2[i]; if (c1 != c2) return c1 < c2 ? -1 : 1; if (!c1) return 0; } return 0; } size_t strlen(const char *str) { size_t len; for (len = 0; str[len]; len++); return len; }