From 58fdbd8edfbb85a06c6c4bc0edafa46faf0709ef Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sun, 2 Feb 2025 23:00:25 +0500 Subject: feat: trim utils --- src/utils/string.cpp | 21 +++++++++++++++++++++ src/utils/string.hpp | 3 +++ 2 files changed, 24 insertions(+) diff --git a/src/utils/string.cpp b/src/utils/string.cpp index bb590ca..c0b7517 100644 --- a/src/utils/string.cpp +++ b/src/utils/string.cpp @@ -1,5 +1,8 @@ #include "string.hpp" +#include +#include +#include #include namespace silly::editor::utils { @@ -15,4 +18,22 @@ namespace silly::editor::utils { return parts; } + + void ltrim(std::string &s) { + s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](unsigned char ch) { + return !std::isspace(ch); + })); + } + + void rtrim(std::string &s) { + s.erase(std::find_if(s.rbegin(), s.rend(), + [](unsigned char ch) { return !std::isspace(ch); }) + .base(), + s.end()); + } + + void trim(std::string &s) { + rtrim(s); + ltrim(s); + } } \ No newline at end of file diff --git a/src/utils/string.hpp b/src/utils/string.hpp index cfee5b7..9ec766c 100644 --- a/src/utils/string.hpp +++ b/src/utils/string.hpp @@ -4,4 +4,7 @@ namespace silly::editor::utils { std::vector split_text(const std::string &text, char delimiter); + void ltrim(std::string &s); + void rtrim(std::string &s); + void trim(std::string &s); } \ No newline at end of file -- cgit v1.2.3