> Én tuti, hogy (C-ben) temp stringbe pakolnám azokat a karaktereket, melyek megfelelnek a kritériumnak, közben két számlálót használnék a léptetésre.
Ez jó hozzáállás.
> nem tudom, hogy az erase() hogy működik
Teljesen mindegy, hogy hogyan működik – ha többször hívod meg egy-egy karakter törlésére (márpedig csak így lehet), már garantáltan algoritmikusan rosszabb, mint ha egy menetben ugranál át minden érdektelen karaktert a másolás során. Tehát en bloc rossz választás az erase() erre a feladatra – már feltéve, hogy ez számít egyáltalán. Mert például ha garantált, hogy a bemeneti sztring legfeljebb 20-30 karakter, talán jó ha 4-5 szóközzel, akkor baromira tök mindegy.