#include #include #include // It's base. NUL terminator. int nulTerm = 1; // ------------------------------------- // BASE - String and init of this // ------------------------------------- typedef char* string; string strInit(char* s) { string str = malloc(strlen(s) + nulTerm); strcpy(str, s); return str; } void strResize(string* s, int new_size) { *s = realloc(*s, new_size + nulTerm); } // -------------- END ------------------ // ------------------------------------- // FUNCTION - basic operations // ------------------------------------- void strAdd(string* s, char* str_new) { *s = realloc(*s, strlen(*s) + strlen(str_new) + nulTerm); strcat(*s, str_new); } void strSet(string* s, char* str_new) { *s = realloc(*s, strlen(str_new) + nulTerm); strcpy(*s, str_new); } void strCopy(string* dst, string* src) { strcpy(*dst, *src); } // -------------- END ------------------ // ------------------------------------- // CONVERT - different convert to str // ------------------------------------- int numLen(double num) { return snprintf(NULL, 0, "%lf", num); } char* int2Str(int* num) { char* buffer = malloc(numLen(*num) + nulTerm); sprintf(buffer, "%d", *num); return buffer; } char* float2Str(float* num) { char* buffer = malloc(numLen(*num) + nulTerm); sprintf(buffer, "%f", *num); return buffer; } char* double2Str(double* num) { char* buffer = malloc(numLen(*num) + nulTerm); sprintf(buffer, "%lf", *num); return buffer; } // -------------- END ------------------