From f3d93713c01dc5291d79027e3b9a7e79b48beda8 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Fri, 3 Feb 2017 21:00:43 +0100 Subject: [PATCH] [DEV] update some API --- etk/stdTools.cpp | 18 ++++++++++++------ etk/stdTools.hpp | 2 ++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/etk/stdTools.cpp b/etk/stdTools.cpp index 3519698..39841e6 100644 --- a/etk/stdTools.cpp +++ b/etk/stdTools.cpp @@ -804,12 +804,18 @@ bool etk::start_with(const std::string& _obj, const std::string& _val, bool _cas std::string etk::replace(const std::string& _obj, char _val, char _replace) { std::string copy(_obj); - for( size_t iii = 0; - iii < copy.size(); - iii++) { - if (copy[iii] == _val) { - copy[iii] = _replace; - } + std::replace(copy.begin(), copy.end(), _val, _replace); + return copy; + +} + +//! @not_in_doc +std::string etk::replace(const std::string& _obj, const std::string& _val, const std::string& _replace) { + std::string copy(_obj); + size_t pos = 0; + while ((pos = copy.find(_val, pos)) != std::string::npos) { + copy.replace(pos, _val.length(), _replace); + pos += _replace.length(); } return copy; } diff --git a/etk/stdTools.hpp b/etk/stdTools.hpp index 8b6d86e..c852490 100644 --- a/etk/stdTools.hpp +++ b/etk/stdTools.hpp @@ -617,6 +617,8 @@ namespace etk { std::u32string replace(const std::u32string& _obj, char32_t _val, char32_t _replace); #endif //! @not_in_doc + std::string replace(const std::string& _obj, const std::string& _val, const std::string& _replace); + //! @not_in_doc std::string extract_line(const std::string& _obj, int32_t _pos); #if __CPP_VERSION__ >= 2011 //! @previous