#include "oswald.h" #include "oswald_strings.h" u16t oswald_strlen(char *string) { int i=0; if (string == NULL) return 0; while (string[i] != 0) i++; return i; } char* itoa(s16t value, char* result, int base) { char* ptr = result, *ptr1 = result, tmp_char; s16t 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; }