/*
 * retezce I. (uvod)
 */

#include <stdio.h>
#include <stdlib.h>

char s[32];  // s je UKAZATEL na zacatek 32 prvkoveho POLE znaku
             // max.31 znaku (s[0]...s[30]) zakoncene '\0'

char s1[8] = {'a','h','o','j','\0','X','Y','Z'};  // deklarace pole s inicializaci
char s2[8] = "nazdar";
char s3[]  = "cau";

char *s4,*s5,*s6;  // deklarace ukazatele na znak - na zacatek dyn.alokovaneho retezce

int main(void) {
  printf("s1 = %s \n", s1);
  printf("s2 = %s \n", s2);
  printf("s3 = %s \n", s3);
  for (i=0;i<8;i++) printf("%c", s1[i]); printf("\n");
  for (i=0;i<8;i++) printf("%d ",s1[i]); printf("\n");

  printf("adresa retezce s1 = %p \n", s1);
  printf("adresa retezce s2 = %p \n", s2);
  printf("adresa retezce s3 = %p \n", s3);

  printf("zadej retezec : "); scanf("%7s",s1); // s1 je adresa
  // !!! DULEZITE - nacti max. 7 znaku !!!
  printf("s1 = %s \n", s1);

  //  s = "cau"; NELZE - s je KONSTANTNI ukazatel

  s4 = malloc(80);
  printf("zadej retezec : "); scanf("%79s",s4);
  printf("s4 = %s \n", s4);
  s5 = s4;
  while ( *s5 != '\0' ) s5++;
  printf("delka retezce je %ld znaku\n", s5-s4);
  free(s4);

  return 0;
}