From: Michael D. Lowis Date: Wed, 20 Aug 2014 12:40:06 +0000 (-0400) Subject: Implemented substr X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=8c0a6eeeff8c6bacfb9e5d08c04b068d1c8d4e10;p=projs%2Flibcds.git Implemented substr --- diff --git a/source/string/str.c b/source/string/str.c index e915b48..0f4bdc8 100644 --- a/source/string/str.c +++ b/source/string/str.c @@ -110,10 +110,14 @@ str_t* str_erase(str_t* p_str, size_t start, size_t end) str_t* str_substr(str_t* p_str, size_t start, size_t end) { - (void)p_str; - (void)start; - (void)end; - return NULL; + str_t* p_newstr = NULL; + assert(NULL != p_str); + assert(start <= end); + p_newstr = (str_t*)mem_allocate(sizeof(str_t) + (end - start) + 1, NULL); + p_newstr->size = (end-start); + memcpy(p_newstr->data, &(p_str->data[start]), end - start); + p_newstr->data[p_newstr->size] = '\0'; + return p_newstr; } int str_compare(str_t* p_str1, str_t* p_str2)