#include "oswald.h" #include "oswald_strings.h" uint16_t oswald_strlen(char *string) { int i=0; if (string == NULL) return 0; while (string[i] != 0) i++; return i; } char *itoa(int16_t value, char* result, int base) { char *ptr = result, *ptr1 = result, tmp_char; int16_t tmp_value; if (result == NULL) return NULL; // check that the base if valid if (base < 2 || base > 36) { *result = '\0'; return result; } do { tmp_value = value; value /= base; *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - value * base)]; } while ( value ); // Apply negative sign if (tmp_value < 0) *ptr++ = '-'; *ptr-- = '\0'; while (ptr1 < ptr) { tmp_char = *ptr; *ptr--= *ptr1; *ptr1++ = tmp_char; } return result; }