C++
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
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:
- Prolaziti kroz niz 1 po 1 element
- 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.
- Prolaziti kroz niz 1 po 1 element
- 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.
- Prolaziti kroz niz 1 po 1 element
- 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.