NIZOVI ZNAKOVA [STRINGOVI]
Pogledajmo slijedeći program,
#include <stdio.h>
main()
{
static char name1[] = {'H','e','l','l','o'};
static char name2[] = "Hello";
printf("%s\n", name1);
printf("%s\n", name2);
}
Ispis programa
Helloxghifghjkloqw30-=kl`'
Hello
Razlika između ova dva niza je u tome što name2
ima nulu postavljenu na kraj niza, tj. u name2[5], dok name1
nema. Ovo često može rezultirati u znakovima viška koji se ispisuju na
kraju. Da postavimo nulu na kraj niza name1 , inicijalizaciju možemo promijeniti
na,
static char name1[] = {'H','e','l','l','o','\0'};
Pogledajmo slijedeći program
koji inicijalizira niz znakova word tijekom programa, koristeći
funkciju strcpy, koja zahtijeva korištenje include datoteke string.h
#include <stdio.h>
#include <string.h>
main()
{
char word[20];
strcpy( word, "hi there." );
printf("%s\n", word );
}
Ispis programa
hi there.