тут на входе строка W, состоящая из последовательности символов a1 и b1.
Я хочу заменить все a1 на х и все b1 на у
Самое простое решение: почти все компиляторы имеют стандартную функцию pos, которая возвращает позицию первого символа при вхождении указанных в аргументах подстроки в строке, если таковой подстроки не обнаружено, то возвращает ноль. Меняете первый символ на "х" или "у", а следующий удаляете. И т.д., пока не ноль (и для a1, и для b1). При желании функцию pos для данного частного случая не трудно написать самостоятельно.