From 87647ba1cd1cc88a870af3bd6ad464549c5339bb Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 14 Jan 2020 10:20:22 +0100 Subject: [PATCH] string: adding base58_strip() function --- src/string.cpp | 12 ++++++++++++ src/string.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/string.cpp b/src/string.cpp index 91eed0e..a8c4e99 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -66,3 +66,15 @@ std::string& rtrim(std::string& str) { std::string& trim(std::string& str) { return ltrim(rtrim(str)); } + +static bool _is_base58(char ch) { + static std::string alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; + return alphabet.find(ch) != std::string::npos; +} + +std::string& base58_strip(std::string &str) { + str.erase(std::remove_if(str.begin(), str.end(), [] (std::string::value_type ch) + { return !_is_base58(ch); } + ), str.end()); + return str; +} diff --git a/src/string.h b/src/string.h index 9c8bf67..38c0440 100644 --- a/src/string.h +++ b/src/string.h @@ -39,4 +39,6 @@ std::string& rtrim(std::string& str); std::string& ltrim(std::string& str); std::string& trim(std::string& str); +std::string& base58_strip(std::string &str); + #endif /* STRING_H */