Back
Close

C++

Adi.exe
2,450 views

Algoritmi sa nizovima karaktera

Tekst koji je u memoriji predstavljen kao niz karaktera najčešće nije u onom obliku koji odgovara progameru. Nekada je taj tekst potrebno skratiti ili pronaći specifičan dio teksta. U ovom dokumentu bit će obrađeni njačešći algoritmi koji se koriste sa nizovima karaktera.

Pored ovih algoritama, bit će riječi i o tipu podatka string. Ovaj tip podatka je u C++ jeziku dizajniran da olakša rukovanje tekstom i skrati vrijeme osobi koja piše programski kod. Osnovne funkcije vezane za ovaj tip podatka nalaze se u istoimenoj biblioteci string.

Primjer korištenja string tipa podatka:

Već je moguće uočiti razliku između stringa i niza karaktera u tome što za Text varijablu nije bilo potrebno odrediti dužinu unaprijed.

Dužina niza karaktera

Zadatak ovog algoritma je da u nizu karaktera određenog kapaciteta odredi koliko je karaktera dio teksta koji niz treba pohraniti.

Koraci u algoritmu:

  1. Prolaziti kroz niz 1 po 1 element
  2. Provjeriti da li je trenutni element \0 (terminirajući karakter)
    • Ukoliko jeste zabilježiti lokaciju elementa i završiti pretragu niza
    • Ukoliko nije nastaviti sa narednom iteracijom

String

Kako bi dobili dužinu teksta u objektu tipa string koristi se funkcija length(). Bitno je primjetiti da se ova kao i većina funkcija vezana za ovaj tip podatka poziva tako što se napiše naziv varijable, ., i onda naziv funkcije sa zagradama između kojih se mogu nalaziti parametri ukoliko postoje.

Ispis niza karaktea

Za ispis niza karaktera koristi se idući algoritam.

  1. Prolaziti kroz niz 1 po 1 element
  2. Provjeriti da li je trenutni element \0 (terminirajući karakter)
    • Ukoliko jeste završiti iteraciju kroz niz
    • Ukoliko nije ispisati trenutni element

String

Ispis string objekta je veoma jednostavan.

Pronalaženje specifičnog karaktera

Algoritam za pronalaženje specifičnog karaktera u nizu.

  1. Prolaziti kroz niz 1 po 1 element
  2. Provjeriti da li je element traženi karakter
    • Ukoliko jeste zabilježiti lokaciju elementa i završiti pretragu niza
    • Ukoliko nije nastaviti sa narednom iteracijom

Ukoliko karakter nije pronađen vrijednost varijable Lokacija će biti -1.

String

Kako bi u stringu našli prvo ponavljanje karaktera koristi se funcija find() i ova funkcija prima jedan parametar a to je lokacija karaktera. Bitno je napomenuti da ova funkcija može prnaći i niz karaktera unutar stringa.

Ova funkcija također vraća vrijednost -1 ukoliko ne može pronaći karakter.

Kreiranje substring-a

Bilo koji niz karaktera koji se može izdvojiti iz drugog niza karaktera se naziva substring. Substring se određuje početnom lokacijom karaktera i dužinom substringa.

Recimo za niz karaktera Ovo je neki text postoji substring sa početnom pozicijom 7 i dužinom 4. Lako je pronaći vrijednost ovog substringa tako što ćemo naći 7. karakter u tekstu a to je slovo n i ispisati 3 naredna karaktera, a to su slova e, k i i. Taj substring je riječ neki.

String

Kako bi postigli ovo koristeći string objekt koristimo funkciju substr() koja prima 2 parametra a to su početna pozicija i dužina substringa.

Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants