From 7d9193e3eec9129298db3ac288432105135e18dd Mon Sep 17 00:00:00 2001 From: Leonetienne Date: Tue, 17 May 2022 00:03:39 +0200 Subject: Moved objects into namespace Leonetienne --- StringTools/src/CharTools.cpp | 113 ++++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 54 deletions(-) (limited to 'StringTools/src/CharTools.cpp') diff --git a/StringTools/src/CharTools.cpp b/StringTools/src/CharTools.cpp index 6484da9..a2ff135 100644 --- a/StringTools/src/CharTools.cpp +++ b/StringTools/src/CharTools.cpp @@ -1,68 +1,73 @@ #include "StringTools/CharTools.h" #include -bool CharTools::IsVowel(const char c, const std::string &vowels) { - const char lc = MakeLower(c); +namespace Leonetienne::StringTools { - return std::any_of( - vowels.cbegin(), - vowels.cend(), - [lc](const char vowel) { - return lc == vowel; - } - ); -} + bool CharTools::IsVowel(const char c, const std::string &vowels) { + const char lc = MakeLower(c); -bool CharTools::IsLetter(const char c) { - // Re-implementing IsUpper and MakeLower to prevent stack-overflow by endless recursion - const char lowercase_c = !(c & (1<<5)) ? (c | (1<<5)) : c; + return std::any_of( + vowels.cbegin(), + vowels.cend(), + [lc](const char vowel) { + return lc == vowel; + } + ); + } - return (lowercase_c >= 'a') && (lowercase_c <= 'z'); -} + bool CharTools::IsLetter(const char c) { + // Re-implementing IsUpper and MakeLower to prevent stack-overflow by endless recursion + const char lowercase_c = !(c & (1<<5)) ? (c | (1<<5)) : c; -bool CharTools::IsDigit(const char c) { - return (c >= '0') && (c <= '9'); -} + return (lowercase_c >= 'a') && (lowercase_c <= 'z'); + } -bool CharTools::IsUpper(const char c) { - if (!IsLetter(c)) - return false; - else - return !(c & (1<<5)); -} + bool CharTools::IsDigit(const char c) { + return (c >= '0') && (c <= '9'); + } -bool CharTools::IsLower(const char c) { - // Can't just return !IsUpper(c), because it should still return false for digits and symbols... + bool CharTools::IsUpper(const char c) { + if (!IsLetter(c)) + return false; + else + return !(c & (1<<5)); + } - if (!IsLetter(c)) - return false; - else - return (c & (1<<5)); -} + bool CharTools::IsLower(const char c) { + // Can't just return !IsUpper(c), because it should still return false for digits and symbols... -char CharTools::MakeUpper(char c) { - if (!IsLetter(c)) - return c; - else if (IsUpper(c)) - return c; - else - return c & ~(1<<5); -} + if (!IsLetter(c)) + return false; + else + return (c & (1<<5)); + } -char CharTools::MakeLower(char c) { - if (!IsLetter(c)) - return c; - else if (!IsUpper(c)) - return c; - else - return c | (1<<5); -} + char CharTools::MakeUpper(char c) { + if (!IsLetter(c)) + return c; + else if (IsUpper(c)) + return c; + else + return c & ~(1<<5); + } + + char CharTools::MakeLower(char c) { + if (!IsLetter(c)) + return c; + else if (!IsUpper(c)) + return c; + else + return c | (1<<5); + } + + char CharTools::CopySign(char sign, char c) { + if ((!IsLetter(c)) || (!IsLetter(sign))) + return c; + if (IsUpper(sign)) + return MakeUpper(c); + else + return MakeLower(c); + } -char CharTools::CopySign(char sign, char c) { - if ((!IsLetter(c)) || (!IsLetter(sign))) - return c; - if (IsUpper(sign)) - return MakeUpper(c); - else - return MakeLower(c); } + -- cgit v1.2.3