Znakovni nizovi

Niz znakova se kreira na isti način kao i sve ostale jednodimenzionalne nizove:

char ime[N];- deklaracija znakovnog niza

ime – označava ime promenljive, a N označava broj znakova  (koliko elemenata ima niz sa nazivom ime). Jedan od N znakova koji su elementi niza je  ‘ ‘ – i predstavlja  null знак или null terminator. Ovaj znak označava kraj tekstualnog podataka, t.j omogućava da niz ima manje od N znakova.  Prikaz znakova u nizu:

Na ovaj način štampaju se  znakove niza sve dok se ne stigne do ‘ ‘. Svi znaci posle ‘ ‘ su nebitni i ne koriste se.

Inicijalizacija nizova

char niz[]={‘D’,’a’,’r’,’k’,’o’,“}         //Navodi se null znak,//

char niz[]=“Darko“           // znak se podrazumeva//

PR.

#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
char array[] = „Darko“;
array[0] = ‘M’; //obican niz

cout << array << endl; //stampa ‘Marko’

char text[100];

cout << „Unesi rec: „;
cin >> text; //unosi niz
cout << text; //stampa unetu rec

system(„PAUSE“);
return EXIT_SUCCESS;
}

U programu, naredbom cin >> text, čita reč koja se unosi preko tastature i dodeljuje se promenljivoj text. Na kraju teksta se automatski unosi i znak null. Znači cin>> čita podatke sve do prvog pojavljivanja praznog mesta. Ako je potrebno pročitati ceo red uvodi se funkcija  cin.getline(char[], N).

Funkcije koje omogućavaju rada sa tekstualnim nizovima

  • strlen(char[] niza)– vrednost funkcije je dužina niza bez znak null
  • strcpy(char[] destinacija, char[] izvor)– kopira tekstualni niz sa izvora do destinacije uključujući i znak null
  • strncpy(char[] destinacija, char[] izvor, int N)– kopira najviše N znakova od izvora do destinacije, znak null se kopira samo ako spada u N znakova, inače se uvodi sam. Napomena: niz destinacija mora da bude dovoljno velik da bi primio sve znakove sa izvora
  • strcmp(char[] prva, char[] druga)– upoređuje niz prvi i niz drugi i kao vrednost daje 0 ako su nizovi jednaki
  • strncmp(char[] prva, char[] druga, int N)– upoređuje N znakova niza prvi i drugi i ako su isti dodeljuje vrednost 0
  • strcat(char[] prva, char[] druga)– dodaje nizu prvi niz drugi, niz prvi treba da bude dovoljno velik da prihvati i znakove niza drugi
  • strncat(char[] prva, char[] vtora, int N)– nadovezije prvih N znakova niza drugi nizu prvi

Pr1:

#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{

char a[] = „prva niza“;
char b[] = „druga niza“;

char c[] = „tekst“;
char d[] = „tekst“;

cout << strlen(a) << endl; //stampa ‘9’
cout << strlen(c) << endl; //stampa ‘5’

char t[100];
strcpy(t, „Nekoja vrednost“); //t=“Nekoja vrednost“
strcpy(t, „Neshto drugo“); //t=“Neshto drugo“

strcpy(t, a); //t=“prva niza“
strncpy(t, b, 4); //t=“drugdruga niyae kopira se )
t[4] = “; //t=“drug“

strcat(t, b); //t=“druga niza“

cout << t << endl; //stampa „druga niza

cout << strcmp(t, a) << endl; //stampa 1
cout << strcmp(c, d) << endl; //stampa „0“

system(„PAUSE“);
return EXIT_SUCCESS;
}

Pr2:

Resenje:

#include <iostream>

#include <string>
using namespace std;
int main()
{
string a, b;
a = "prva";
b = "druga";
cout << a.size() << endl; //stampa'4'
cout << b.size() << endl; //stampa'5'
a = a + " " + b;
cout << a << endl; //stampa'prva druga'
b = b + b;
cout << b << endl; //stampa'drugadruga';
return 0;
}

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se /  Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se /  Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se /  Promeni )

Povezivanje sa %s