4#ifndef _Stroika_Foundation_Characters_CString_Utilities_h_
5#define _Stroika_Foundation_Characters_CString_Utilities_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
14#include "Stroika/Foundation/Common/Common.h"
37namespace Stroika::Foundation::Characters::CString {
46 template <IPossibleCharacterRepresentation T>
47 size_t Length (
const T* p);
53 bool Equals (
const T* lhs,
const T* rhs);
55 bool Equals (
const char8_t* lhs,
const char8_t* rhs);
57 bool Equals (
const char* lhs,
const char* rhs);
59 bool Equals (
const char16_t* lhs,
const char16_t* rhs);
61 bool Equals (
const char32_t* lhs,
const char32_t* rhs);
63 bool Equals (
const wchar_t* lhs,
const wchar_t* rhs);
87 void Copy (T* dest,
size_t nEltsInDest,
const T* src);
89 void Copy (
char* dest,
size_t nEltsInDest,
const char* src);
91 void Copy (
wchar_t* dest,
size_t nEltsInDest,
const wchar_t* src);
100 void Cat (T* dest,
size_t nEltsInDest,
const T* src2Append);
102 void Cat (
char* dest,
size_t nEltsInDest,
const char* src2Append);
104 void Cat (
wchar_t* dest,
size_t nEltsInDest,
const wchar_t* src2Append);
122 string FormatV (
const char* format, va_list argsList);
123 u8string FormatV (
const char8_t* format, va_list argsList);
124 wstring FormatV (
const wchar_t* format, va_list argsList);
125 string Format (
const char* format, ...);
126 u8string Format (
const char8_t* format, ...);
127 wstring Format (
const wchar_t* format, ...);
132 string LimitLength (
const string& str,
size_t maxLen,
bool keepLeft =
true);
133 wstring
LimitLength (
const wstring& str,
size_t maxLen,
bool keepLeft =
true);
140 template <
typename TCHAR>
141 basic_string<TCHAR>
LTrim (
const basic_string<TCHAR>& text);
142 template <
typename TCHAR>
143 basic_string<TCHAR> RTrim (
const basic_string<TCHAR>& text);
144 template <
typename TCHAR>
145 basic_string<TCHAR> Trim (
const basic_string<TCHAR>& text);
181 template <
typename T>
183 template <
typename T>
185 template <
typename T>
195#include "Utilities.inl"
unsigned int HexString2Int(const string &s)
void Cat(T *dest, size_t nEltsInDest, const T *src2Append)
Safe variant of strncat() - which always NUL-terminates the string. DIFFERNT arguments however,...
string LimitLength(const string &str, size_t maxLen, bool keepLeft=true)
basic_string< TCHAR > LTrim(const basic_string< TCHAR > &text)
size_t Length(const T *p)
Measure the length of the argument c-string (NUL-terminated string).
void Copy(T *dest, size_t nEltsInDest, const T *src)
Safe variant of strncpy() - which always NUL-terminates the string.
bool Equals(const T *lhs, const T *rhs)
strcmp or wsccmp() as appropriate == 0
string StripTrailingCharIfAny(const string &s, char c)
T String2Int(const string &s)