Tomija je učiteljica v šoli čisto zastrašila z vejicami: ker so mu v spisih kar naprej manjkale, jih zdaj za vsak slučaj raje napiše malo več. Da jih ja ne bi bilo premalo, postavi kakšno celo sredi besede. Primer njegovega spisa (Souvlaki je grška različica ražnjičev.):
Na t,em vl,a,ku stre,žejo so,uv,laki, ne pa tudi hra,ne, bogate z vla,kni,n,ami. Vp,liv lako,,te je, hud!
Ko napiše tak spis v Mikromehki Besedi ali drugem urejevalniku besedil, je zoprno, da ne more enostavno zamenjati vseh pojavitev nekega niza w1 z drugim (enako dolgim) nizom w2. Če se recimo želi prikupiti svoji učiteljici Notranjskega in vse pojavitve niza vlak zamenjati z wlah, bi moral na koncu dobiti takšno besedilo:
Na t,em wl,a,hu stre,žejo so,uw,lahi, ne pa tudi hra,ne, bogate z wla,hni,n,ami.\ Vp,liv lako,,te je, hud!
Njegov urejevalnik besedila pa tega ne zna, saj zgago delajo vejice, razmetane znotraj w1.
Pomagaj ubogemu Tomiju. Napiši podprogram Zamenjaj(s, w1, w2), ki izpiše besedilo, kakršno nastane, če v besedilu s zamenjamo vse pojavitve niza w1 z enako dolgim nizom w2. Pri teh zamenjavah mora ohraniti vse
originalne položaje vejic, kot je tudi prikazano v zgornjem primeru. Tvoj podprogram naj bo takšne oblike:
void Zamenjaj(char *s, char *w1, char *w2); /* v C/C++ */
void Zamenjaj(string s, string w1, string w2); // v C++
public static void zamenjaj(String s, String w1, String w2); // v javi
procedure Zamenjaj(s, w1, w2: string); { v pascalu }
def Zamenjaj(s, w1, w2): ... # v pythonu
<PDF>