WEBnSTUDY.com
Algoritmi

Rad sa stringovima - Zadaci

Na ovom mestu smo pripremili zadatke vezane za obradu stringova. Ovakvi zadaci se obično rešavaju korišćenjem ciklusa (najčešće brojačkog), unutar koga je potrebno izdvajati znakove unetog stringa. Kroz zadatke vežbate sledeće probleme:

Većina zadataka služi da shvatite kako zaista funkcionišu neke mogućnosti softvera (kao što je npr. Excel) i programskih jezika, koje često prihvatamo zdravo za gotovo.

Osnove

Najpre počinjemo sa nekoliko osnovnih zadataka za vežbu.

Zadaci za vežbu

Zadatak 1
Prebrojati koliko ima reči u unetom stringu, tako što prebrojavamo razmake. Npr. za string 'Joca voli sladoled', dobija se rezultat 3. Podrazumeva se da u stringu nema vodećih, pratećih ili višestrukih razmaka.

Zadatak 2
Prebrojati koliko se puta u unetom stringu pojavljuje slovo "M" (i veliko i malo). Npr. za string 'Mama ima momu', dobija se rezultat 5.

Zadatak 3
Prebrojati koliko ima znakova koji su cifre u unetom stringu.

Zadatak 4
Prebrojati koliko ima malih slova u unetom stringu. Slova koja se koriste u stringu pripadaju isključivo engleskoj abecedi.

Zadatak 5
Ispitati da li u unetom stringu ima više malih ili velikih slova. Slova koja se koriste u stringu pripadaju isključivo engleskoj abecedi.

Zadatak 6
Proveriti da li je uneti string palindrom (potpuno je isti kada se čita od pozadi). Npr. 'anavolimilovana' je palindrom.

Zadatak 7
Proveriti da li je uneti string palindrom, vodeći računa o razmacima. Npr. 'ana voli milovana' je palindrom.

Zadatak 8
Sva velika slova u stringu treba svesti na mala slova. Npr. za uneto 'WEBnSTUDY.com', dobija se novi string 'webnstudy.com'. Slova koja se koriste u stringu pripadaju isključivo engleskoj abecedi.

Zadatak 9
Pronaći poziciju poslednjeg razmaka u stringu. Npr. za uneto 'Pera ima devojku', rezultat je 8 (pozicija prvog znaka je 0).

Zadatak 10
Ispisati dužinu prve reči unetog stringa. Npr. za uneto 'Pera ima devojku', rezultat je 4. Podrazumeva se da uneti string nema vodeće razmake.

Zadatak 11
Za uneti string A treba kreirati novi string B koji se dobija kada se iz stringa A izdvoji prva reč. Npr. za A='Pera ima devojku', dobija se B='Pera'. Podrazumeva se da uneti string nema vodeće razmake.

Zadatak 12
Kreirati string B koji je jednak poslednjoj reči unetog stringa A. Npr. za A='Pera ima devojku', B='devojku'. Podrazumeva se da uneti string nema prateće razmake.

Zadatak 13
Iz unetog stringa treba izdvojiti N znakova sa leve strane. Npr. za string 'Pera ima devojku' i N=6, dobija se 'Pera i'.

Zadatak 14
Izdvojiti N znakova sa desne strane unetog stringa. Npr. za string 'Pera ima devojku' i N=5, dobija se 'vojku'.

Zadatak 15
Za uneti string A, treba izdvojiti podstring B, koji počinje od unete pozicije N i ima M znakova. Npr. za string 'Pera ima devojku', N=5 i M=7, dobija se B='ima dev'.

Zadatak 16
Uneti string se šifruje tako što se zamenjuje redosled znacima u stringu. Prvi i drugi zamene mesta, zatim 3. i 4. zamene mesta itd. Npr. za string 'Pera ima devojku', treba dobiti 'ePari amd vejouk'. Ako string ima neparan broj znakova, poslednji znak se ne dira.

Zadatak 17
Unosi se string A i znak Z. Kreirati novi string B koji se dobija tako što se iz unetog stringa izbacuje svaka pojava znaka Z.

Zadatak 18
Unose se dva stringa A i B. Kreirati novi string kao kombinaciju stringova A i B, tako što se kombinuju prvi sa prvim, drugi sa drugim, treći sa trećim znakom itd. Ako je jedan string duži od drugog, na kraju samo dodati znakove viška. Npr. za stringove "PERA" i "sladoled" dobija se string "PsElRaAdoled".

Zadatak 19
Pronaći i ispisati najdužu reč u unetom stringu. Npr. za string "Joca voli sladoled od vanile", dobija se "sladoled".

Zadatak 20
Kreirati novi string koji se dobija tako što se u unetom stringu svako slovo "A" menja slovom "I" i obrnuto. Voditi računa o velikim i malim slovima ("A" postaje "I", "a" postaje "i").

Zadatak 21
String B se dobija tako što se svaki znak pitanja i uzvika u unetom stringu A zamenjuju sa ', pitamo se.' i ', vičemo.'. Npr. A='Ko je to? Pokazi se!', dobija se B='Ko je to, pitamo se. Pokazi se, vicemo'.

Zadatak 22
U unetom stringu treba zameniti velika i mala slova engleske abecede. Npr. za uneto 'WEBnSTUDY.com', dobija se 'webNstudy.COM'.

Zadatak 23
Uneti string se šifruje tako što se svako slovo engleske abecede zamenjuje sledećim slovom po redosledu - "A" postaje "B", "B" postaje "C" itd. Slovo "Z" se zamenjuje sa "A". Zamena se obavlja kako za velika, tako i za mala slova.

Zadatak 24
Proveriti da li posle svake tačke u unetom stringu idu tačno jedan razmak i veliko slovo. U stringu se koristi samo tekst engleske abecede. Na kraju stringa može i ne mora da se nađe tačka.

Zadatak 25
Proveriti da li uneti string A počinje stringom B. Npr. za A='Pera ima devojku' i B='Per', odgovor je "DA". Podrazumeva se da je string B kraći od stringa A.

Zadatak 26
Za uneti string A i celi broj N treba kretirati novi string u kome je izdvojena N-ta reč unetog stringa. Npr. za string 'Pera mnogo voli devojke', i N=3, dobija se rezultat 'voli'. Podrazumeva se da je uneti string "ispravan", u smislu da nema vodećih, pratećih i višestrukih razmaka, kao i da N-ta reč postoji u stringu. Znakovi interpunkcije se računaju kao delovi reči uz koju se nalaze. Prva reč je označena brojem 1, druga brojem 2, itd.

Zadatak 27
Prebrojati koliko ima potvrdnih, upitnih i uzvičnih rečenica u unetom stringu. Nekoliko uzastopnih znakova pitanja ili uzvika se računaju kao jedan, '!?' označava uzvičnu, a '?!' upitnu rečenicu (gleda se samo prvi znak). Uneti string je ispravan, u smislu da se po završetku svake rečenice ubacuje razmak.

Napredniji zadaci

Ovi zadaci su nadgradnja prethodnih. Ne zahtevaju se neke specijalne programerske tehnike, već pre da malo razmislite kako biste ih rešili.

Zadaci za vežbu

Zadatak 1
Za uneti string, kreirati novi string u kome su elminisani svi vodeći, prateći i višestruki razmaci. Npr. za A="   Pera voli    sladoled   ", dobija se B="Pera voli sladoled".

Zadatak 2
Za uneti celi broj treba izvršiti pretvaranje tog broja u string, bez korišćenja funkcije str(). Npr. za X=126, dobija se A='126'.

Zadatak 3
String X se dobija kada u stringu A zamenimo prvu pojavu podstringa B stringom C. Npr. za A='Pera je dobro zaradio', B='ra' i C='tar', dobija se X='Petar je dobro zaradio'. Podrazumeva se da je traženi podstring B kraći od stringa A.

Zadatak 4
Dat je neki celi broj u obliku stringa. Izračunati njegovu numeričku vrednost, bez korišćenja funkcije val(). Npr. za A='234', dobija se X=234.

Zadatak 5
Za zadati binarni broj u obliku stringa (samo jedinice i nule), treba izračunati odgovarajući dekadni broj. Npr. za A='110101', dobija se X=53.

Zadatak 6
Unose se stringovi A i Z. Kreirati novi string B koji se dobija tako što se iz unetog stringa A izbacuje svaka pojava bilo kog znaka koji se nalazi u stringu Z. Podrazumeva se da je u stringu Z svaki znak zadat samo jednom. Velika i mala slova se razlikuju Npr. Za stringove A="Pera ima opasnu devojku" i Z="iaPs", dobija se "er m opnu devojku"

Zadatak 7
U stringu se zadaje neki aritmetički izraz. Proveriti da li su zagrade u izrazu ispravno zadate (proveravaju se samo zagrade, ne i ispravnost celog izraza).

Zadatak 8
Unose se dva velika cela broja u obliku stringova A i B. Izračunati njihov zbir u obliku novog stringa.

Zadatak 9
Uneti celi broj treba prevesti cifru-po-cifru u string, korišćenjem stringa sa "rečnikom" gde svaka reč odgovara jednoj cifri, počev od nule pa do devet. Npr. ako je u programu dat rečnik "nula jedan dva tri četiri pet šest sedam osam devet", za uneti broj 123 se dobija "jedan dva tri".

Zadatak 10
Iz unetog stringa ukloniti svaki tekst pod navodnicima. U stringu se ne pojavljuju navodnici unutar navodnika. Npr. Za uneto 'Ovo je "važan" tekst' dobija se 'Ovo je  tekst'.

Zadatak 11
Otkriti koji je najviše puta ponovljen znak u unetom stringu. Ako postoji više takvih znakova, priznaje se bilo koji od njih. Uneti string ima bar jedan znak različit od praznine. Velika i mala slova su različiti znakovi.

Zadatak 12
Za uneti string napraviti igru Vešala. Na početku se unosi reč koja se traži, (malim slovima), a onda počinje igra. Nepogođena slova se ispisuju kao donja crta "_", a korisnik unosi slovo po slovo. Igra se završava kada je cela reč pogođena. Kao rezultat računar ispisuje broj pokušaja.

  1. M. Škarić, V. Radović (2009): Uvod u programiranje - Zbirka zadataka iz programskog jezika C, Mikro knjiga, Beograd
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies) radi vođenja interne statistike u cilju unapređenja korisničkog iskustva. Tako prikupljeni podaci su anonimni i nedostupni trećim licima. Vaša privatnost nije ugrožena ni na koji način.