From 8c0a6eeeff8c6bacfb9e5d08c04b068d1c8d4e10 Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Wed, 20 Aug 2014 08:40:06 -0400 Subject: [PATCH] Implemented substr --- source/string/str.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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) -- 2.52.0