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 da rešavate sledeće probleme:

Posle numerika, stringovi su najvažniji tip podataka u programskim jezicima. Danas nema programskog jezika koji ne podržava rad sa tekstualnim podacima. 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.

alg-str-broj-reci-sr

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.

alg-str-broj-slova-m-sr

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

alg-str-broj-cifara-sr

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

alg-str-broj-malih-slova-sr

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.

alg-str-mala-i-velika-sr

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

alg-str-palindrom-sr

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

alg-str-palindrom-space-sr

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.

alg-str-velika-u-mala-sr

Zadatak 9
Pronaći poziciju poslednjeg razmaka u stringu, pretražujući od kraja stringa. Npr. za uneto 'Pera ima devojku', rezultat je 9 (pozicija prvog znaka je 1).

alg-str-poslednji-space-sr

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.

alg-str-duzina-prve-reci-sr

Zadatak 11
Za uneti string A treba kreirati novi string B koji se sastoji od prve i poslednje reči (odvojenih razmakom) unetog stringa. Npr. za A='Svuda pođi, kući dođi', dobija se B='Svuda dođi'. Podrazumeva se da uneti string nema vodeće ili prateće razmake.

alg-str-prva-poslednja-sr

Zadatak 12
Iz unetog stringa treba izdvojiti N znakova sa leve strane. Npr. za string 'Pera ima devojku' i N=6, dobija se 'Pera i'. Ako je N veće od dužine stringa, kao rezultat se dobija ceo string.

alg-str-prvih-n-znakova-sr

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

alg-str-poslednjih-n-znakova-sr

Zadatak 14
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=6 i M=7, dobija se B='ima dev'.

alg-str-mid-sr

Zadatak 15
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.

alg-str-sifra-redosled-sr

Zadatak 16
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. Npr. za unet string "Madagaskar" i znak "a", dobijamo rezultat "Mdgskr"

alg-str-brisanje-znaka-sr

Zadatak 17
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".

alg-str-kombinacija-sr

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

alg-str-najduza-rec-sr

Zadatak 19
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"). Npr. za string "Mali Maca je SILNA faca", treba da se dobije "Mila Mici je SALNI fici".

alg-str-zamena-a-i-sr

Zadatak 20
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'.

alg-str-zamena-upitnik-sr

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

alg-str-zamena-mala-velika-sr

Zadatak 22
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.

alg-str-sifra-sledeci-sr

Zadatak 23
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.

alg-str-recenice-sr

Zadatak 24
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.

alg-str-find-pocetak-sr

Zadatak 25
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.

alg-str-nta-rec-sr

Zadatak 26
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.

alg-str-tipovi-recenica-sr

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".

alg-str-trim-sr

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'.

alg-str-num-u-str-sr

Zadatak 3
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.

alg-str-val-sr

Zadatak 4
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.

alg-str-bin-dek-sr

Zadatak 5
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.

alg-str-replace-sr

Zadatak 6
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'.

alg-str-ukloni-navode-sr

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).

alg-str-zagrade-sr

Zadatak 8
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"

alg-str-brisanje-znakova-sr

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

alg-str-zbir-velikih-sr

Zadatak 10
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".

alg-str-num-u-txt-sr

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.

alg-str-najcesci-sr

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.

alg-str-vesala-sr
  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.