Jazyk C - reťazce: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
(Vytvorená stránka „Kategória:Študijné materiály Kategória:Informatika {{Skripta_ZI}} Reťazce sú vlastne jednorozmerné pole znakov ukončené nulovým znakom '\0'. Null zako…“)
 
Riadok 31: Riadok 31:
 
int main () {
 
int main () {
  
   char slovo[5] = {'A', 'h, 'o', 'j','\0'};
+
   char slovo[5] = {'A', 'h', 'o', 'j','\0'};
 +
  /*poprípade môžme pole inicializovať takto:
 +
  char slovo[5] = "Ahoj";
 +
  */
 +
 
 
   printf("Vypisane slovo: %s\n", slovo);
 
   printf("Vypisane slovo: %s\n", slovo);
 
   return 0;
 
   return 0;

Verzia zo dňa a času 11:17, 26. marec 2020


Reťazce sú vlastne jednorozmerné pole znakov ukončené nulovým znakom '\0'. Null zakončený reťazec teda obsahuje znaky, ktoré tvoria reťazec, za ktorým nasleduje null.

Nasledujúce deklarácia a inicializácia vytvoria reťazec pozostávajúci zo slova „Ahoj“. Každý reťazec musí byť ukončený nulovým znakom '\0', preto veľkosť poľa znakov obsahujúceho reťazec je vždy o +1 väčší ako je počet znakov v slove.

Iniciálizácia

char slovo[5] = {'A', 'h', 'o', 'j','\0'};

Ak budete postupovať podľa pravidla inicializácie poľa, môžete vyššie uvedený príkaz napísať nasledovne.

char slovo[5] = "Ahoj";

Prezentácia pamäte vyššie definovaného reťazca v C.

Index 0 1 2 3 4
Premenná A h o j \0

V skutočnosti neukladáte nulový znak na koniec reťazcovej konštanty. Keď inicializuje pole, kompilátor C ho automaticky umiestni '\ 0' na koniec reťazca. Pokúsme sa vypísať vyššie uvedený reťazec.

 1 #include <stdio.h>
 2 
 3 int main () {
 4 
 5    char slovo[5] = {'A', 'h', 'o', 'j','\0'};
 6    /*poprípade môžme pole inicializovať takto:
 7    char slovo[5] = "Ahoj";
 8    */
 9 
10    printf("Vypisane slovo: %s\n", slovo);
11    return 0;
12 }

Vystup.

Vypisane slovo: Ahoj