/*
* 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;
}