Du läufst den kompletten String Zeichen für Zeichen durch und merkst Dir die Chars, an denen Du vorbeikommst.
Deine längste "Kennung" ist drei Zeichen lang (X01). Also brauchst Du nur drei Char-Variablen, die Du in dieser Schleife füllst/schiebst und prüfst, ob eine der Kennungen vorkommt. Die korrekten Zeichen und die korrigierten/ersetzten Zeichen schreibst Du in einen neuen (Ergebnis-)String.
Oder Du schaust Dir mal an, wie ein Parser arbeitet