12#define UE_INCLUDETOOL_IGNORE_INCONSISTENT_STATE
14#ifndef UE_STRING_CLASS
15 #error "String.cpp.inl should only be included after defining UE_STRING_CLASS"
17#ifndef UE_STRING_CHARTYPE
18 #error "String.cpp.inl should only be included after defining UE_STRING_CHARTYPE"
20#ifndef UE_STRING_CHARTYPE_IS_TCHAR
21 #error "String.cpp.inl should only be included after defining UE_STRING_CHARTYPE_IS_TCHAR"
29 template <
typename CompareType>
46 if (!Compare(*Target,
WCh))
111 template <
typename SrcCharType>
138 int32 Length = FPlatformString::ConvertedLength<UE_STRING_CHARTYPE>(Str,
Count);
162 template <
typename SrcCharType>
165 checkf(Src,
TEXT(
"Unable to construct string from a null pointer"));
166 checkf(ExtraSlack >= 0,
TEXT(
"Unable to construct string with negative slack"));
171 int32 DestLen = FPlatformString::ConvertedLength<UE_STRING_CHARTYPE>(Src, SrcLen);
172 Data.Reserve(DestLen + ExtraSlack);
173 Data.AddUninitialized(DestLen);
175 FPlatformString::Convert(Data.GetData(), DestLen, Src, SrcLen);
177 else if (ExtraSlack > 0)
179 Data.Reserve(ExtraSlack + 1);
183 template <
typename SrcCharType>
188 checkf(ExtraSlack >= 0,
TEXT(
"Unable to construct string with negative slack"));
190 int32 DestLen = FPlatformString::ConvertedLength<UE_STRING_CHARTYPE>(
InSrc,
InCount);
193 Data.Reserve(DestLen + ExtraSlack + 1);
194 Data.AddUninitialized(DestLen + 1);
198 FPlatformString::Convert(DataPtr, DestLen,
InSrc,
InCount);
201 else if (ExtraSlack > 0)
203 Data.Reserve(ExtraSlack + 1);
207 template <
typename SrcCharType>
210 checkf(Src,
TEXT(
"Unable to construct string from a null pointer"));
211 checkf(ExtraSlack >= 0,
TEXT(
"Unable to construct string with negative slack"));
216 int32 DestLen = FPlatformString::ConvertedLength<UE_STRING_CHARTYPE>(Src, SrcLen);
217 Data.Reserve(DestLen + ExtraSlack);
218 Data.AddUninitialized(DestLen);
220 FPlatformString::Convert(Data.GetData(), DestLen, Src, SrcLen);
222 else if (ExtraSlack > 0)
224 Data.Reserve(ExtraSlack + 1);
310 if (CharacterCount > 0)
312 Data.
Reserve(CharacterCount + 1);
318 Data.
Empty(Slack ? Slack + 1 : 0);
343NSString* UE_STRING_CLASS::GetNSString()
const
358#if PLATFORM_TCHAR_IS_4_BYTES
376 int32 InsertIndex = (Data.
Num() > 0) ? Data.
Num()-1 : 0;
383 Data[InsertIndex] =
InChar;
465 if (StartPosition ==
INDEX_NONE || StartPosition >= Len())
467 StartPosition = Len();
475 if ((*
this)[i+j]!=SubStr[j])
544 this->ToUpperInline();
550 const int32 StringLength = Len();
552 for (
int32 i = 0; i < StringLength; ++i)
568 this->ToLowerInline();
574 const int32 StringLength = Len();
576 for (
int32 i = 0; i < StringLength; ++i)
584 const int32 StringLength = Len();
585 if (StringLength == 0)
654 if (Characters.
Len())
716template <
typename LhsType,
typename RhsType>
735template <
typename LhsCharType,
typename RhsType>
738 using ElementType = UE_STRING_CLASS::ElementType;
764template <
typename LhsType,
typename RhsCharType>
780template <
typename LhsCharType,
typename RhsType>
792template <
typename LhsType,
typename RhsCharType>
883void UE_STRING_CLASS::ReplaceCharInlineCaseSensitive(
const ElementType From,
const ElementType To)
891void UE_STRING_CLASS::ReplaceCharInlineIgnoreCase(
const ElementType From,
const ElementType To)
895 ReplaceCharInlineCaseSensitive(From, To);
913 TrimStartAndEndInline();
1032 New.ReverseString();
1072 if (
Dec == 3 && x > 0)
1113 const int32 TempBufferSize = 16;
1157 (Source.Len() % 3) == 0)
1161 int32 WriteIndex = 0;
1192 (Source.Len() % 2) == 0)
1196 int32 WriteIndex = 0;
1276 check(NumCharacters >= 0);
1480 if (
IsEmpty() || !From || !*From)
1519 ReplaceInline(From, To, SearchCase);
1528 && From !=
nullptr && *From != 0
1537 while (Pos !=
nullptr)
1557 else if (
Contains(From, SearchCase))
1641 if (Len() > 0 && (Chars ==
nullptr || Chars->
Num() > 0))
1658 if (Len() > 0 && (Chars ==
nullptr || Chars->
Num() > 0))
1709#define STARTING_BUFFER_SIZE 512
1728 Buffer = (ElementType*) FMemory::Realloc(
Buffer, BufferSize *
sizeof(ElementType));
1742 return ResultString;
1759 while (Result == -1)
1783 #if UE_STRING_CHARTYPE_IS_TCHAR
1785 static_assert(
sizeof(
UTF16CHAR) ==
sizeof(
UCS2CHAR),
"UTF16CHAR and UCS2CHAR are assumed to be the same size!");
1794 #if UE_STRING_CHARTYPE_IS_TCHAR
1826 #if UE_STRING_CHARTYPE_IS_TCHAR
1901 #if UE_STRING_CHARTYPE_IS_TCHAR
1962 using ElementType = UE_STRING_CLASS::ElementType;
1966 const ElementType*
const StartPosition = (*TargetString) +
StartSearch;
2007 using ElementType = UE_STRING_CLASS::ElementType;
2024#undef UE_INCLUDETOOL_IGNORE_INCONSISTENT_STATE
EAllowShrinking
Definition AllowShrinking.h:10
#define UE_STRING_CLASS
Definition AnsiString.cpp:6
#define UE_STRING_CHARTYPE
Definition AnsiString.cpp:7
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_PTRDIFF_TO_INT32(argument)
Definition CoreMiscDefines.h:442
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
T * New(FMemStackBase &Mem, int32 Count=1, int32 Align=DEFAULT_ALIGNMENT)
Definition MemStack.h:259
#define INVALID_OBJECTNAME_CHARACTERS
Definition NameTypes.h:179
#define MAX_int32
Definition NumericLimits.h:25
#define MIN_int32
Definition NumericLimits.h:16
#define Split(a, ahi, alo)
Definition Predicates.inl:204
#define PREPROCESSOR_TO_STRING(Token)
Definition PreprocessorHelpers.h:103
#define PREPROCESSOR_JOIN(TokenA, TokenB)
Definition PreprocessorHelpers.h:104
FArchive & operator<<(FArchive &Ar, UE_STRING_CLASS &Str)
Definition String.cpp.inl:1779
UE_STRING_CLASS SlugStringForValidName(const UE_STRING_CLASS &DisplayString, const UE_STRING_CLASS::ElementType *ReplaceWith)
Definition String.cpp.inl:2005
int32 FindMatchingClosingParenthesis(const UE_STRING_CLASS &TargetString, const int32 StartSearch)
Definition String.cpp.inl:1960
int32 HexToBytes(const UE_STRING_CLASS &HexString, uint8 *OutBytes)
Definition String.cpp.inl:1955
#define STARTING_BUFFER_SIZE
Definition String.cpp.inl:1709
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
#define GET_TYPED_VARARGS_RESULT(CharType, msg, msgsize, len, lastarg, fmt, result)
Definition VarArgs.h:29
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
bool IsByteSwapping()
Definition Archive.h:169
CORE_API void SetCriticalError()
Definition Archive.cpp:319
UE_FORCEINLINE_HINT bool IsLoading() const
Definition Archive.h:236
UE_FORCEINLINE_HINT bool IsForcingUnicode() const
Definition Archive.h:291
UE_FORCEINLINE_HINT int64 GetMaxSerializeSize() const
Definition Archive.h:508
UE_FORCEINLINE_HINT SizeType AddUninitialized()
Definition Array.h:1664
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void RemoveAt(SizeType Index, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2083
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
bool Contains(const ComparisonType &Item) const
Definition Array.h:1518
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
void Append(const TArray< OtherElementType, OtherAllocatorType > &Source)
Definition Array.h:2412
UE_NODEBUG void CountBytes(FArchive &Ar) const
Definition Array.h:1649
ElementType Pop(EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:1196
void SetNumUninitialized(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2369
UE_FORCEINLINE_HINT void Shrink()
Definition Array.h:1278
SizeType Insert(std::initializer_list< ElementType > InitList, const SizeType InIndex)
Definition Array.h:1875
void Empty(SizeType Slack=0)
Definition Array.h:2273
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition StringConv.h:832
Definition StringView.h:107
Definition UnrealString.h.inl:55
CORE_API void PathAppend(const ElementType *Str, int32 StrLength)
Definition String.cpp.inl:824
CORE_API void TrimStartAndEndInline()
Definition String.cpp.inl:898
CORE_API void RemoveSpacesInline()
Definition String.cpp.inl:582
UE_FORCEINLINE_HINT DataType & GetCharArray() UE_LIFETIMEBOUND
Definition UnrealString.h.inl:384
bool EndsWith(CharRangeType &&InSuffix, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase) const
Definition UnrealString.h.inl:1595
static CORE_API UE_STRING_CLASS FormatAsNumber(int32 InNumber)
Definition String.cpp.inl:1062
CORE_API int32 ParseIntoArrayWS(TArray< UE_STRING_CLASS > &OutArray, const ElementType *pchExtraDelim=nullptr, bool bInCullEmpty=true) const
Definition String.cpp.inl:1376
CORE_API UE_STRING_CLASS ToLower() const &
Definition String.cpp.inl:559
static CORE_API UE_STRING_CLASS SanitizeFloat(double InFloat, const int32 InMinFractionalDigits=1)
Definition String.cpp.inl:1210
CORE_API void TrimStartInline()
Definition String.cpp.inl:917
CORE_API void ReplaceCharWithEscapedCharInline(const TArray< ElementType > *Chars=nullptr)
Definition String.cpp.inl:1639
CORE_API void InsertAt(int32 Index, ElementType Character)
Definition String.cpp.inl:637
CORE_API void TrimEndInline()
Definition String.cpp.inl:940
bool MatchesWildcard(CharRangeType &&Wildcard, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase) const
Definition UnrealString.h.inl:1652
CORE_API UE_STRING_CLASS TrimStartAndEnd() const &
Definition String.cpp.inl:904
static UE_STRING_CLASS FromInt(int32 Num)
Definition UnrealString.h.inl:2039
UE_STRING_PRINTF_FMT_CHARTYPE FmtCharType
Definition UnrealString.h.inl:59
CORE_API bool Split(const UE_STRING_CLASS &InStr, UE_STRING_CLASS *LeftS, UE_STRING_CLASS *RightS, ESearchCase::Type SearchCase, ESearchDir::Type SearchDir=ESearchDir::FromStart) const
Definition String.cpp.inl:491
bool Contains(CharRangeType &&SubStr, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase, ESearchDir::Type SearchDir=ESearchDir::FromStart) const
Definition UnrealString.h.inl:1209
void CheckInvariants() const
Definition UnrealString.h.inl:318
CORE_API void ReplaceEscapedCharWithCharInline(const TArray< ElementType > *Chars=nullptr)
Definition String.cpp.inl:1656
CORE_API void ReverseString()
Definition String.cpp.inl:1042
static CORE_API UE_STRING_CLASS ChrN(int32 NumCharacters, ElementType Char)
Definition String.cpp.inl:1274
static CORE_API UE_STRING_CLASS FromHexBlob(const uint8 *SrcBuffer, const uint32 SrcSize)
Definition String.cpp.inl:1175
CORE_API void AppendInt(int32 InNum)
Definition String.cpp.inl:1108
CORE_API UE_STRING_CLASS LeftPad(int32 ChCount) const
Definition String.cpp.inl:1288
static CORE_API bool ToBlob(const UE_STRING_CLASS &Source, uint8 *DestBuffer, const uint32 DestSize)
Definition String.cpp.inl:1152
bool RemoveFromStart(CharRangeType &&InPrefix, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase)
Definition UnrealString.h.inl:520
void MidInline(int32 Start, int32 Count=MAX_int32, EAllowShrinking AllowShrinking=EAllowShrinking::Default)
Definition UnrealString.h.inl:1075
CORE_API UE_STRING_CLASS & AppendChar(ElementType InChar)
Definition String.cpp.inl:368
CORE_API void TrimToNullTerminator()
Definition String.cpp.inl:419
CORE_API void SerializeAsANSICharArray(FArchive &Ar, int32 MinCharacters=0) const
Definition String.cpp.inl:1089
CORE_API UE_STRING_CLASS Mid(int32 Start, int32 Count) const &
Definition String.cpp.inl:863
void LeftInline(int32 Count, EAllowShrinking AllowShrinking=EAllowShrinking::Default)
Definition UnrealString.h.inl:984
CORE_API void Reset(int32 NewReservedSize=0)
Definition String.cpp.inl:326
CORE_API void TrimCharInline(ElementType CharacterToTrim, bool *bCharRemoved)
Definition String.cpp.inl:963
CORE_API void ConvertTabsToSpacesInline(const int32 InSpacesPerTab)
Definition String.cpp.inl:1680
static CORE_API UE_STRING_CLASS Chr(ElementType Ch)
Definition String.cpp.inl:1267
CORE_API int32 ReplaceInline(const ElementType *SearchText, const ElementType *ReplacementText, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase)
Definition String.cpp.inl:1523
CORE_API bool ToBool() const
Definition String.cpp.inl:1135
UE_STRING_CLASS & operator=(UE_STRING_CLASS &&)=default
CORE_API int32 ParseIntoArrayLines(TArray< UE_STRING_CLASS > &OutArray, bool bInCullEmpty=true) const
Definition String.cpp.inl:1400
static CORE_API UE_STRING_CLASS ConstructWithSlack(const ANSICHAR *Str, int32 ExtraSlack)
Definition String.cpp.inl:251
static CORE_API bool ToHexBlob(const UE_STRING_CLASS &Source, uint8 *DestBuffer, const uint32 DestSize)
Definition String.cpp.inl:1187
UE_STRING_CLASS()=default
CORE_API int32 ParseIntoArray(TArray< UE_STRING_CLASS > &OutArray, const ElementType *pchDelim, bool bInCullEmpty=true) const
Definition String.cpp.inl:1325
static CORE_API UE_STRING_CLASS ConstructFromPtrSize(const ANSICHAR *Str, int32 Size)
Definition String.cpp.inl:246
UE_STRING_CLASS ReplaceQuotesWithEscapedQuotes() const &
Definition UnrealString.h.inl:1916
CORE_API void Shrink()
Definition String.cpp.inl:336
CORE_API void RemoveAt(int32 Index, EAllowShrinking AllowShrinking=EAllowShrinking::Default)
Definition String.cpp.inl:667
bool StartsWith(CharRangeType &&InPrefix, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase) const
Definition UnrealString.h.inl:1539
static CORE_API UE_STRING_CLASS ConstructFromPtrSizeWithSlack(const ANSICHAR *Str, int32 Size, int32 ExtraSlack)
Definition String.cpp.inl:256
CORE_API void Reserve(int32 CharacterCount)
Definition String.cpp.inl:307
UE_STRING_CHARTYPE ElementType
Definition UnrealString.h.inl:58
CORE_API UE_STRING_CLASS TrimEnd() const &
Definition String.cpp.inl:950
CORE_API UE_STRING_CLASS RightChop(int32 Count) const &
Definition String.cpp.inl:856
CORE_API UE_STRING_CLASS TrimQuotes(bool *bQuotesRemoved=nullptr) const &
Definition String.cpp.inl:995
CORE_API UE_STRING_CLASS TrimChar(ElementType CharacterToTrim, bool *bCharRemoved=nullptr) const &
Definition String.cpp.inl:1008
CORE_API void ToLowerInline()
Definition String.cpp.inl:572
CORE_API void AppendChars(const ANSICHAR *Str, int32 Count)
Definition String.cpp.inl:389
static UE_STRING_CLASS Printf(UE::Core::TCheckedFormatString< FmtCharType, Types... > Fmt, Types... Args)
Definition UnrealString.h.inl:1423
CORE_API UE_STRING_CLASS Replace(const ElementType *From, const ElementType *To, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase) const &
Definition String.cpp.inl:1475
CORE_API UE_STRING_CLASS Reverse() const &
Definition String.cpp.inl:1029
static CORE_API int32 CullArray(TArray< UE_STRING_CLASS > *InOutArray)
Definition String.cpp.inl:1021
CORE_API void Empty()
Definition String.cpp.inl:321
CORE_API UE_STRING_CLASS RightPad(int32 ChCount) const
Definition String.cpp.inl:1301
CORE_API void TrimQuotesInline(bool *bQuotesRemoved=nullptr)
Definition String.cpp.inl:990
static CORE_API UE_STRING_CLASS FromBlob(const uint8 *SrcBuffer, const uint32 SrcSize)
Definition String.cpp.inl:1140
CORE_API void ToUpperInline()
Definition String.cpp.inl:548
CORE_API UE_STRING_CLASS ToUpper() const &
Definition String.cpp.inl:535
CORE_API UE_STRING_CLASS TrimStart() const &
Definition String.cpp.inl:927
CORE_API bool IsNumeric() const
Definition String.cpp.inl:1315
UE_FORCEINLINE_HINT bool FindChar(ElementType InChar, int32 &OutIndex) const
Definition UnrealString.h.inl:1266
bool RemoveFromEnd(CharRangeType &&InSuffix, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase)
Definition UnrealString.h.inl:576
UE_FORCEINLINE_HINT int32 Len() const
Definition UnrealString.h.inl:954
int32 Find(CharRangeType &&SubStr, ESearchCase::Type SearchCase=ESearchCase::IgnoreCase, ESearchDir::Type SearchDir=ESearchDir::FromStart, int32 StartPosition=INDEX_NONE) const
Definition UnrealString.h.inl:1116
Type
Definition CString.h:21
@ IgnoreCase
Definition CString.h:26
@ CaseSensitive
Definition CString.h:23
Type
Definition CString.h:34
@ FromEnd
Definition CString.h:39
@ FromStart
Definition CString.h:36
CORE_API void InlineCombineSurrogates(FString &Str)
Definition String.cpp:49
implementation
Definition PlayInEditorLoadingScope.h:8
FORCEINLINE void ConstructWithSlack(TArray< UE_STRING_CHARTYPE > &Data, const SrcCharType *Src, int32 ExtraSlack)
Definition String.cpp.inl:208
bool MatchesWildcardRecursive(const UE_STRING_CHARTYPE *Target, int32 TargetLength, const UE_STRING_CHARTYPE *Wildcard, int32 WildcardLength, CompareType Compare)
Definition String.cpp.inl:30
void AppendCharacters(TArray< UE_STRING_CHARTYPE > &Out, const SrcCharType *Str, int32 Count)
Definition String.cpp.inl:112
FORCEINLINE void ConstructFromCString(TArray< UE_STRING_CHARTYPE > &Data, const SrcCharType *Src, int32 ExtraSlack)
Definition String.cpp.inl:163
UE_DISABLE_OPTIMIZATION_SHIP void StripNegativeZero(double &InFloat)
Definition String.cpp:57
FORCEINLINE void ConstructWithLength(TArray< UE_STRING_CHARTYPE > &Data, const SrcCharType *InSrc, int32 InCount, int32 ExtraSlack)
Definition String.cpp.inl:184
Definition String.cpp.inl:714
int32 RhsLen
Definition String.cpp.inl:727
FORCEINLINE UE_STRING_CLASS int32 LhsLen
Definition String.cpp.inl:736
return Forward< RhsType >(Rhs))
FORCEINLINE UE_STRING_CLASS RhsType && Rhs
Definition String.cpp.inl:718
ElementType * ResultData
Definition String.cpp.inl:756
UE_STRING_CLASS Result(Forward< LhsType >(Lhs), RhsLen)
Definition String.cpp.inl:732
CopyAssignItems(ResultData, Lhs, LhsLen)
FORCEINLINE UE_STRING_CLASS PREPROCESSOR_JOIN(ConcatStrings_, UE_STRING_CLASS)(LhsType &&Lhs
EParseTokensOptions
Definition ParseTokens.h:19
void ParseTokens(const FAnsiStringView View, const ANSICHAR Delimiter, TFunctionRef< void(FAnsiStringView)> Visitor, const EParseTokensOptions Options)
Definition ParseTokens.cpp:302
int32 HexToBytes(FWideStringView Hex, uint8 *OutBytes)
Definition HexToBytes.cpp:30
U16 Index
Definition radfft.cpp:71
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
static UE_FORCEINLINE_HINT void * Memmove(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:109
static FORCENOINLINE CORE_API void Free(void *Original)
Definition UnrealMemory.cpp:685
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
static UE_FORCEINLINE_HINT int32 Strcmp(const CharType *String1, const CharType *String2)
Definition CString.h:1018
static UE_FORCEINLINE_HINT int32 Stricmp(const CharType *String1, const CharType *String2)
Definition CString.h:1030
static int32 Strlen(const CharType *String)
Definition CString.h:1047
static UE_FORCEINLINE_HINT int32 Strncmp(const CharType *String1, const CharType *String2, SIZE_T Count)
Definition CString.h:1024
static const CharType * Strnistr(const CharType *Str, int32 InStrLen, const CharType *Find, int32 FindLen)
Definition CString.h:841
static UE_FORCEINLINE_HINT int32 Strnicmp(const CharType *String1, const CharType *String2, SIZE_T Count)
Definition CString.h:1036
static bool IsPureAnsi(const CharType *Str)
Definition CString.h:67
static bool ToBool(const CharType *String)
Definition CString.h:515
static bool IsNumeric(const CharType *Str)
Definition CString.h:139
static const CharType * Stristr(const CharType *Str, const CharType *Find)
Definition CString.h:799
static const CharType * Strnstr(const CharType *Str, int32 InStrLen, const CharType *Find, int32 FindLen)
Definition CString.h:881
static UE_FORCEINLINE_HINT const CharType * Strstr(const CharType *String, const CharType *Find)
Definition CString.h:1066
static bool IsUpper(CharType Char)
Definition Char.h:93
static CharType ToLower(CharType Char)
Definition Char.h:88
static CharType ToUpper(CharType Char)
Definition Char.h:80