Warum so kompliziert, einfach mal die Beschreibung von SysUtils.StringReplace lesen
So wie ich das verstehe, ersetzt diese einen Teilstring durch einen neuen, nicht einzelne Zeichen.
Er will aber nicht nur Teilstrings ersetzten, sondern in StringA jedes Zeichen, welches in StringB vorkommt.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.