16.1.2012 dvije godine postojanja naših stranica

Znakovni niz

Ako je podatak znak, njegova oznaka tipa je char. Podatak tipa char je predstavljen jednim znakom unutar jednostrukih navodnika ili
ASCII vrijednošću tog znaka (dekadska protuvrijednost).
 

Primjer pridruživanja vrijednosti varijablama tipa char

char slovo1='A';

Pridružen je znak označen jednostrukim navodnicima.

char slovo2=65;

Pridružen je dekadski ekvivalent ASCII znaka.

Ako je podatak tekst (niz znakova) rabe se znakovni nizovi (engl. character strings). Znakovni niz je jednodimenzionalno polje čiji su članovi znakovi (engl. char). Sadržaj se u znakovni niz unosi između para dvostrukih navodnika. Npr.:

 

char X[] = "Ovo je znakovni niz"

 

a u memoriju se sprema:

'O'

'v'

'O'

''

'j'

'e'

''

'z'

'n'

'a'

'k'

'o'

'v'

'n'

'i'

''

'n'

'i'

'z'

'\0'

Svaki znakovni niz završava zaključnim znakom '\0' (engl. null character). Taj znak ne treba posebno navoditi, ali treba znati da on zauzima jedno mjesto u memoriji.

 
Zadatak:

Treba prebrojiti koliko puta se pojavljuje slovo o u znakovnom nizu:

Koliko slova o ima u ovoj rečenici?

Ispis neka bude ovakav:

 

U znakovnom nizu: Koliko slova o ima u ovoj recenici? Ima ... slova o.

 

Rješenje:

 

#include <iostream>

using namespace std;

int main ()

{

            int i,brojo;

            brojo=0;

            char X[]="Koliko slova o ima u ovoj recenici?";

            for (i=0;X[i]!='\0';i++)

            {

                        if(X[i]=='o')

                        {

                                   brojo=brojo+1;

                        }

            }

            cout<<endl<<"U znakovnom nizu: Koliko slova o ima u ovoj recenici? Ima ";
            cout<<brojo<<" slova o."<<endl;

            return 0;

}

 

Rezultat:

U znakovnom nizu: Koliko slova o ima u ovoj recenici? Ima 6 slova o.

 

 
Sa znakovnim nizovima je moguće izvoditi različite operacije. Za većinu operacija postoje gotove funkcije u biblioteci cstring.
 
Valja razlikovati znakove od znakovnih nizova!