From 14d7f2fd6b887e27b720c9e0f0a9e10841f32ae1 Mon Sep 17 00:00:00 2001 From: anulax1225 Date: Thu, 14 Mar 2024 09:51:54 +0100 Subject: [PATCH] Added string tools to the libreary --- bakanet/src/bakanet/tools/string_tools.cpp | 45 ++++++++++++++++++++++ bakanet/src/bakanet/tools/string_tools.h | 10 +++++ 2 files changed, 55 insertions(+) create mode 100755 bakanet/src/bakanet/tools/string_tools.cpp create mode 100755 bakanet/src/bakanet/tools/string_tools.h diff --git a/bakanet/src/bakanet/tools/string_tools.cpp b/bakanet/src/bakanet/tools/string_tools.cpp new file mode 100755 index 0000000..9d2ee5f --- /dev/null +++ b/bakanet/src/bakanet/tools/string_tools.cpp @@ -0,0 +1,45 @@ +#include "string_tools.h" + +namespace Bk::Tools { + std::string string_to_lower(std::string& str) + { + for (int i = 0; i < str.length(); i++) + { + str[i] = std::tolower(str[i]); + } + return str; + } + + std::string string_to_upper(std::string& str) + { + for (int i = 0; i < str.length(); i++) + { + str[i] = std::toupper(str[i]); + } + return str; + } + + std::unique_ptr> string_split(std::string& str, std::string delimiter, int cpt) + { + std::string s(str); + std::unique_ptr> splits(new std::vector(0)); + size_t pos = 0; + while (((pos = s.find(delimiter)) != std::string::npos) && cpt-- != 0) + { + splits->push_back(s.substr(0, pos)); + s.erase(0, pos + delimiter.length()); + } + if (s.length()) splits->push_back(s); + return splits; + } + + void string_trim(std::string& str, const std::string& whitespace) + { + const auto strBegin = str.find_first_not_of(whitespace); + const auto strEnd = str.find_last_not_of(whitespace); + if (strBegin != std::string::npos) + { + str.erase(0, strBegin); + } + } +} \ No newline at end of file diff --git a/bakanet/src/bakanet/tools/string_tools.h b/bakanet/src/bakanet/tools/string_tools.h new file mode 100755 index 0000000..5bfb6b7 --- /dev/null +++ b/bakanet/src/bakanet/tools/string_tools.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +namespace Bk::Tools { + std::string string_to_lower(std::string& str); + std::string string_to_upper(std::string& str); + std::unique_ptr> string_split(std::string& str, std::string delimiter, int cpt = -1); + void string_trim(std::string& str, const std::string& whitespace = " \b\0"); +} \ No newline at end of file