From 5030d85b9884a47293d24093e487df0da18ba2f7 Mon Sep 17 00:00:00 2001 From: anschrammh Date: Tue, 9 Apr 2019 07:57:55 +0200 Subject: [PATCH] Splitted StringEntity class and definition functions --- src/app/StringEntity.cpp | 33 +++++++++++++++++++++++++++++++++ src/app/definition.cpp | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 src/app/StringEntity.cpp create mode 100644 src/app/definition.cpp diff --git a/src/app/StringEntity.cpp b/src/app/StringEntity.cpp new file mode 100644 index 0000000..6321bb7 --- /dev/null +++ b/src/app/StringEntity.cpp @@ -0,0 +1,33 @@ +#include "Dictionary.h" +#include "definition.h" + +Dictionary *DictionaryHelper::StringEntity::split(char character) +{ + Dictionary *ref = NULL; + unsigned int i(0), counter(0); + char *parseBuffer(NULL); + + if(_string == NULL)return NULL; + + ref = new Dictionary(); + + while(_string[i] != '\0') + { + if(_string[i] == character) + { + ref->add(counter++, parseBuffer); + free(parseBuffer);parseBuffer = NULL; + } + else + { + parseBuffer = addChar(parseBuffer, _string[i]); + } + + i++; + } + + ref->add(counter++,parseBuffer); + free(parseBuffer);parseBuffer = NULL; + + return ref; +} diff --git a/src/app/definition.cpp b/src/app/definition.cpp new file mode 100644 index 0000000..5393075 --- /dev/null +++ b/src/app/definition.cpp @@ -0,0 +1,35 @@ +#include "definition.h" + +char *addChar(char *pointer, const char character) +{ + char *tempAddr = NULL; + if(pointer == NULL) + { + tempAddr = (char *) realloc(pointer, 2*sizeof(char)); + if(tempAddr == NULL) + return NULL; + else + { + pointer = tempAddr; + pointer[0] = character; + pointer[1] = '\0'; + } + } + else + { + tempAddr = (char *) realloc(pointer, (strlen(pointer)+2)*sizeof(char)); + if(tempAddr == NULL) + { + free(pointer); + return NULL; + } + else + { + pointer = tempAddr; + pointer[strlen(pointer)+1] = '\0'; + pointer[strlen(pointer)] = character; + } + } + + return pointer; +}