33#ifndef DVD_CORE_STRING_HELPER_H_
34#define DVD_CORE_STRING_HELPER_H_
45 bool ReplaceStringInPlace(T_str& subject, std::span<const std::string_view> search, std::string_view replace,
bool recursive =
false);
48 [[nodiscard]] T_str
ReplaceString(std::string_view subject, std::span<const std::string_view> search, std::string_view replace,
bool recursive =
false);
51 bool ReplaceStringInPlace(T_str& subject, std::string_view search, std::string_view replace,
bool recursive =
false);
54 [[nodiscard]] T_str
ReplaceString(std::string_view subject, std::string_view search, std::string_view replace,
bool recursive =
false);
56 [[nodiscard]]
string MakeXMLSafe(std::string_view subject);
57 [[nodiscard]] ResourcePath
MakeXMLSafe(
const ResourcePath& subject);
60 void GetPermutations(std::string_view subject, vector<T_str>& permutationContainer);
63 [[nodiscard]]
bool IsNumber(
const T_str& s);
65 [[nodiscard]]
bool IsNumber(
const char* s);
67 [[nodiscard]]
bool BeginsWith(std::string_view input, std::string_view compare,
bool ignoreWhitespace);
76 [[nodiscard]]
bool CompareIgnoreCase(std::string_view a, std::string_view b)
noexcept;
80 [[nodiscard]] T_vec
Split(
const char* input,
char delimiter);
83 void Split(
const char* input,
char delimiter, T_vec& elems);
87 T_str&
Ltrim(T_str& s);
90 [[nodiscard]] T_str
Ltrim(
const T_str& s);
93 T_str&
Rtrim(T_str& s);
96 [[nodiscard]] T_str
Rtrim(
const T_str& s);
99 T_str&
Trim(T_str& s);
102 [[nodiscard]] T_str
Trim(
const T_str& s);
108 [[nodiscard]] Str
StringFormat(
const char* fmt, Args&& ...args);
111 void StringFormat( Str& output,
const char* fmt, Args&& ...args );
bool GetLine(istringstream &input, T_str &line, char delimiter='\n')
Str StringFormat(const char *fmt, Args &&...args)
string to_string(GET_PASS_TYPE< T > value)
void GetPermutations(std::string_view subject, vector< T_str > &permutationContainer)
bool CompareIgnoreCase(const char *a, const char *b) noexcept
bool BeginsWith(std::string_view input, std::string_view compare, bool ignoreWhitespace)
T_vec Split(const char *input, char delimiter)
http://stackoverflow.com/questions/236129/split-a-string-in-c
bool ExtractStartupProject(int argc, char **argv, string &projectOut, const char *arg_prefix="--")
T_str & Ltrim(T_str &s)
http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring
bool IsEmptyOrNull(const char *str) noexcept
void CStringRemoveChar(char *str, char charToRemove) noexcept
bool FindCommandLineArgument(int argc, char **argv, const char *target_arg, const char *arg_prefix="--")
T_str ReplaceString(std::string_view subject, std::span< const std::string_view > search, std::string_view replace, bool recursive=false)
string MakeXMLSafe(std::string_view subject)
bool IsNumber(const T_str &s)
U32 LineCount(const T_str &str)
T_str GetStartingCharacters(const T_str &input, size_t count)
char * commaprint(U64 number) noexcept
bool ReplaceStringInPlace(T_str &subject, std::span< const std::string_view > search, std::string_view replace, bool recursive=false)
T_str GetTrailingCharacters(const T_str &input, size_t count)
Handle console commands that start with a forward slash.
typename std::conditional< pass_by_value< Type >(), typename std::conditional< std::is_move_assignable_v< Type >, Type, const Type >::type, Type const & >::type GET_PASS_TYPE
std::basic_istringstream< char, std::char_traits< char >, dvd_allocator< char > > istringstream
std::basic_string< char, std::char_traits< char >, dvd_allocator< char > > string