diff options
| -rw-r--r-- | bot/src/utils/string.cpp | 22 | ||||
| -rw-r--r-- | bot/src/utils/string.hpp | 3 |
2 files changed, 25 insertions, 0 deletions
diff --git a/bot/src/utils/string.cpp b/bot/src/utils/string.cpp index 71c06bf..0fd01ec 100644 --- a/bot/src/utils/string.cpp +++ b/bot/src/utils/string.cpp @@ -61,6 +61,28 @@ namespace bot { return false; } + + std::vector<std::vector<std::string>> separate_by_length( + const std::vector<std::string> &vector, const int &max_length) { + std::vector<std::vector<std::string>> output; + std::vector<std::string> active; + int length = 0; + + for (const std::string &str : vector) { + length += str.length(); + + if (length >= max_length) { + output.push_back(active); + active = {str}; + } else { + active.push_back(str); + } + } + + if (!active.empty()) output.push_back(active); + + return output; + } } } } diff --git a/bot/src/utils/string.hpp b/bot/src/utils/string.hpp index c8385ad..c1f0121 100644 --- a/bot/src/utils/string.hpp +++ b/bot/src/utils/string.hpp @@ -27,6 +27,9 @@ namespace bot { } bool string_contains_sql_injection(const std::string &input); + + std::vector<std::vector<std::string>> separate_by_length( + const std::vector<std::string> &vector, const int &max_length); } } } |
