From 91d7f8da33f62e2886e369f790a2d103d5392156 Mon Sep 17 00:00:00 2001 From: Leonetienne Date: Sat, 12 Feb 2022 18:19:05 +0100 Subject: Added CharTools functionality --- Src/CharTools.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Src/CharTools.h (limited to 'Src/CharTools.h') diff --git a/Src/CharTools.h b/Src/CharTools.h new file mode 100644 index 0000000..3d7f255 --- /dev/null +++ b/Src/CharTools.h @@ -0,0 +1,41 @@ +#ifndef STRINGTOOLS_CHARTOOLS_H +#define STRINGTOOLS_CHARTOOLS_H + +#include + +/* Handy utensils to manipulate characters */ + +class CharTools { +public: + //! Checks whether or not `c` is a vowel. You can define custom vowel characters. + static bool IsVowel(const char c, const std::string& vowels = "euioay"); + + //! Returns whether or not `c` is a letter. + static bool IsLetter(const char c); + + //! Returns whether or not `c` is a generic character (that contains JUST the sign) + static bool IsGeneric(const char c); + + //! Checks whether or not `c` is an uppercase character. + static bool IsUpper(const char c); + + //! Will return `c` as an uppercase character. + static char MakeUpper(char c); + + //! Will return `c` as a lowercase character. + static char MakeLower(char c); + + //! Will return an empty character with the same sign/capitalization as `c`. + static char GetSign(char c); + + //! Will return `c` with the same capitalization as `sign`. + static char CopySign(char sign, char c); + + //! Generic uppercase character. + static constexpr char UPPERCASE = 0; + + //! Generic lowercase character. + static constexpr char LOWERCASE = (1<<5); +}; + +#endif //STRINGTOOLS_CHARTOOLS_H -- cgit v1.2.3