diff --git a/String Manipulation/StringRemoveSubstring.cpp b/String Manipulation/StringRemoveSubstring.cpp new file mode 100644 index 0000000..d2482d2 --- /dev/null +++ b/String Manipulation/StringRemoveSubstring.cpp @@ -0,0 +1,27 @@ +PCHAR StringRemoveSubstringA(PCHAR String, CONST PCHAR Substring) +{ + DWORD Length = (DWORD)StringLengthA(Substring); + PCHAR pPointer = String; + + if (Length == 0) + return NULL; + + while ((pPointer = StringFindSubstringA(pPointer, Substring)) != NULL) + RfCopyMemory(pPointer, pPointer + Length, StringLengthA(pPointer + Length) + 1); + + return String; +} + +PWCHAR StringRemoveSubstringW(PWCHAR String, CONST PWCHAR Substring) +{ + DWORD Length = (DWORD)StringLengthW(Substring); + PWCHAR pPointer = String; + + if (Length == 0) + return NULL; + + while ((pPointer = StringFindSubstringW(pPointer, Substring)) != NULL) + RfCopyMemory(pPointer, pPointer + Length, StringLengthW(pPointer + Length) + 1); + + return String; +}