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!
|