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