KONVERZNE FUNKCIE ASCII do integer
4.7      int    atoi(s)
          char   *s;
  Osetry retazec "s" a vracia binarnu hodnotu ASCII cisla .
  Konverzia sa ukonci ked sa najde prvy neciselny znak. Ak nebol
  najdeny ziaden ciselny znak je vratena hodnota 0. Pred  cislom
  mozu byt znaky "+" a "-".
                 TRIEDIACE FUNKCIE - SHELL sort
4.8             qsort(list,num_items,size,cmp_fun)
          char  *list;
          int   num_items,size;
          int   (*cmp_fun);
  Funkcia zotriedi  polozky  vzostupne  pomocou  SHELL  sortu  .
  Vsetky polozky su rovnako dlhe,dlzky "size" (v  bytoch)  a  je
  ich "num_items". Polozky su ulozene jedna za druhou zacinajuce
  sa na "list", (*cmp_fun")  je  ukazovatel  do  funkcie ,ktora
  porovnava dva prvky podla "list". Napriklad standartna funkcia
  "strcmp" (opisana neskor) moze  byt  pouzite  ked  polozky  su
  retzce. Funkcia vyzaduje dva ukazovatele: (*cmp_fun )(x,y)
  a funkcia vracia   -1 ak *x<*y
                      0 ak *x==*y
                      1 ak *x>*y
  Vo vseobecnosti je "list" dvojrozmerne pole dlzky  "num_items"
  a sirky "size" v bytoch    char   list  [num_items][size];
  Funkcia je podrobnejsie opisana v K&R.
                        RETAZCOVE FUNKCIE
POZOR !!! Retazce v C je pole znakov ukoncene prvym '\0'bytom.
4.9      #har   *str#at(base,add)
           char *base,*add;
  vlozi na koniec retazca base retazec  add.POZOR!!  funkcia  si
  neosetruje prekrocenie volneho miesta v base a prepise vsetky
  znaky retazcom add. Vysledok funkcie je ukazovatel na base.
4.10     int    strcmp(s,t)
          char   *s,*t;
  Porovnava dva retazce s a t .Vracia  0 ak *s==*t
                                      >0 ak *s>*t
                                      <0 ak *s<*t
4.11     char   *strcpy(dest,source)
          char  *dest,*source;
  Funkcie fyzicky prekopiruje retazec "source" do "dest"
4.12     unsigned  strlen(s)
  Vrati dlzku retazca "s" tj. pocet znakov ukoncenych '\0'.
                   ZNAKOVO ORIENTOVANE FUNKCIE
4.13     int    isalnum(c)
          char   c;
  Vracia TRUE (1) ak znak je alfanumericky (pismeno alebo  cislo
  inac vracia hodnotu FALSE (0).
4.14     int   isalpha(c)
          char  c;
  Vracia TRUE ak je znak pismeno  .Inac vracia FALSE(skupina 1)
4.15     int    isascii(c)
          char   c;
  Vracia TRUE ak znak je typu ASCII (mensi ako o*80  hexa).
4.16     int    iscntrl(c)
          char  c;
  Vracia TRUE ak znak je riadiaci
4.17     int    isdigit (c)
          char  c;
  Vracia TRUE ak znak je cislo (skupina 1)
4.18     int    islower(c)
          char   c;
  Vracia TRUE ak znak je male pismeno (skupina 1)
4.19     int    isprint(c)
          char   c;
  Vracia TRUE ak znak je tlacitelny
4.20     int    ispunct(c)
          char   c;
  Vracia  TRUE  ak  znak  je  interpunkcne  znamienko  (tjm   je
  tlacitelny ale nie pismeno alebo cislo).
4.21     int    isspace(c)
          char  c;
  Vracia TRUE ak znak je medzera tj. medzera,tabulator, ENTER.
  (skupina 1)
4.22     int    isupper(c)
          char  c;
  Vrcia TRUE ak je znak velke pismeno ('A'-'Z')(skupina 1)
4.23     int    tolower(c)
          char  (c);
  Ak je znak velke  pismeno  ,potom  funkcia  vracia  jeho  maly
  ekvivalent. inac vracia nezmeneny znak. (skupina 1)
4.24     int    toupper(c);
          char   c;
  Opak funkcie tolower() (skupina 1)
             FUNKCIE NA PRACU S PRIDELOVANIM PAMATE
Detailne su vysvetlene v k&R.Nachadzaju sa v "stdio.h"
4.25     char   *calloc(n,size"
          unsigned  n,size;
  Priradi pamat pre "n" prvkov o velkosti "size" bytov .  Vracia
  ukazovatel na prvy prvok prideleneho pola alebo vracia NULL ak
  nie je pre pole dostatocne velka volna pamet:
     p=calloc(100,sizeof(int));
  Priradi 200 bytov (pole  100  integer  cisel).  V  skutocnosti
  priradi  viacej  bytov  ,niektore  su  pouzite  ako   riadiace
  Obdoba PASCALOVSKEHO prikazu  "NEW".
                           INE FUNKCIE
4.28            swap(p,q,length)
          char  *p,*q;
          unsigned  length;
  Funkcia vymeni pocet bytov "length" z p do q a  naopak.Funkcia
  sa vyuziva napr v qsort() (skupina 1)
4.29            move(dest,source,length)
          char  *dest,*source;
          unsigned     length;
  presunie "length" bytov zacinajucich na "source" na "dest".
  Presuva tzv nedestruktivnym sposobom tj.nestracaju  sa  ziadne
  byty aj ked sa polia dest source prekryvaju. Kedze funkcia  je
  zabudovana v systeme je rychla .(skupina 1)
                    VSTUPNO-VYSTUPNE FUNKCIE
I/O funkcie (vstupno/vystupne)  v  C  su  riesene  cez  takzvane
"files" co je vlastne  "tok" bytov. Z "filu"(suboru) mozme jeden
byt citat (getc()) alebo pisat (putc()). C jazyk ma 3 standartne
subory "stdin" standartny vstup u SINCLERA klavesnica.  "stdout"
standartny vystup tu obrazovka a "stderr" chybovy vystup.Program
moze otvorit subor na microdriveri alebo kazetovom magnetofone.
Detajlnejsi popis vid kapitolu 1.
  Funkcie vstupu/vystupu rozdelujeme do 3 kategorii:
-A)  Pouziva sa najviac v  C  programoch.  Zabespecuje  buferovy
     vstup a vystup po jednotlivych znakoch.
-B)  b uroven rozsiruje typ a hlavne v oblasti vystupov retazcov
     "puts" a formatovaneho vystupu "printf"
-C)  su to tzv "raw level" cize uplne  najzakladnejsie  .  Tieto
     vyuzivaju potom skupiny A a B.
                            SKUPINA A
4.30     FILE   *fopen(name,mode)
          char   *name,*mode;
  Funkcia otvara subor pre vstup  alebo  vystup  mena  "name"  a
  "mode" hovori ci sa jedna o vstup alebo vystup."R" je otvoreny
  pre citanie a "W" pre zapis. ak otvorite uz  existujuci  subor
  pre "W" bude existujuci subor zniceny a nahradeny novym. POZOR
  mode je retazec a nie znak .Funkcia vracia  tzv.  file-pointer
  (ukazatel do suboru) .Ak nastala pri otvarani chyba bude  jeho
  hodnota 0 (skupina 1)
4.31     int    fclose(fp)
          FILE   *fp;
  Funkcia zatvara subor ktory je otvoreny na  "fp"  ukazovateli.
  (skupina 1).
4.32     int    getc (fp)
          FILE   *fp;
  Funkcia cita nasledujuci znak so suboru "fp".  Vracia  hodnotu
  EOF tj.-1 ak bol najdeny koniec suboru.  POZOR  vystup je typu
  integer a nie char (skupina 1).
4.33     int    ungetc(c,fp)
          int   c;
          FILE  *fp;
  Funkcia vklada znak "c" do suboru "fp",tak ze bude dalsi  znak
  ktory sa nacita funkciou getc() alebo  getchar().pri  praci  s
  touto funkciou by ste mali poznat urcite pravidla : do  suboru
  mozete vlozit maximalne 1 znak ; scanf  pouziva  ungetc  preto
  nemozete pouzit tuto funkciu za scanf  bez  zavolania  funkcie
  getc().(skupina 1)
4.34     int    putc(c,fp)
          int   c;
          FILE  *fp;
  zapisuje jeden znak do suboru "fp" .Vracia hodnotu znaku ktory
  vstupil do funkcie (skupina 1)
4.35     int    getchar()
  nacitave jeden  znak  zo  standartneho  vstupu  "stdin".  Tato
  funkcia prevadza buferovy vstup z klavesnice. Vstupne znaky su
  zhromazdene v riadkovom  bufery  pokial  nebol  zadany  ENTER.
  znaky nacitane do bufera je mozmo zeditovat pomocou DELETE.
  Pri pisani sa text zobrazuje a na orientaciu  sluzi  blikajuci
  kurzor.(skupina 1)
4.36     int    putchar(c)
          int   c;
  vklada  1  znak  na  standartny  vystup  "stdout".  Znak    je
  vykresleny na tv. Funkcia vracia hodnotu  vstupujuceho znaku .
  (skupina 1)
                            SKUPINA B
4.37     volny  exit(n)
  Funkcia je konbinaciou  I/O  funkcie  a  systemovej.  Uzatvara
  vsetky otvorene subory a na vysup program vola fUnkciu _exit()
  Parameter vstupujuci do  funkcie  indikuje  jeho  uspesnost  0
  znamena ok. a ostatne cisle koresponduju zo SPECTRUM chybovymi
  spravami,ktora sa vytlaci.
4.38      char *fgets(s,n,fp)
          char   *s;
          int     n;
          FILE   *fp;
  Funkcia nacitava retazec "s" z "fp". Nacitavanie sa ukonci ked
  sa nacita ENTER ,alebo pokym nebol nacitany znak "n"-1 znak  .
  (tak ze "n" je dlzka retazca "s"). Retazec bude ukonceny  '\0'
  znakom ,ktory bude   pridany za  ENTER  .  Normalna  navratova
  hodnota je "s" ,ale ked bol najdeny koniec suboru vracia NULL
4.39            fputs(s,fp)
          char  *s;
          FILE  *fp;
  Vystup retazca "s" na "fp".
4.40     char   *gets(s)
          char  *s;
  Funkcia cita retazec "s" zo standartneho vstupu .Je to  obdoba
  fgets ,avsak nie je tu ako  parameter  dlzka  retazca  a  znak
  ENTER sa prepise znakom '\0'.
4.41            puts(s)
          char   *s;
  Vystup retazca "s" na standartny vystup (TV)
4.42            printf(control,arg1,arg2,....)
          char   *control;
  Funkcia    vyuzivajuca    sa    na    vsetky    druhy    tlace
  :textu,cisel,znakov  a  retazcov.  Ako  vystupne zariadenie je
  "stdout" cize TV  .Parametre  "control"  je  format  pre  tlac
  ostatnych argumentov. Formatovancie parametre zacinaju znakom
  % a nasleduje jeden z volitelnych parametrov:
      d     znamienkove desiatkove cislo
      o     neznamienkove oktalove cislo
      x                   hexadecimalne cislo
      u                   desiatkove cislo
      c     znak
      s     retazec konciaci '\0'
    specialne znakove modifikatory
      -     zarovnavanie tlace podla laveho okraja(
      0     doplnenie bezvyznamnymi 0
      999   (alebo ine cislo) minimalna dlzka pola pre tlac
      .999  pocet tlacenych znakov z retazca
      L     dlhe data   neovplyvnuje
  Na vytlacenie znaku % sa pouziva symbol %% v retazci "control"
  Funkcia printf patri do skupiny 1. Je potrobnejsie rozobrana v
  K&R .
4.43            fprintf(fp,control,arg1,....)
          char   *control;
          FILE   *fp;
  Chova sa ako printf az na to ze  vystup  ide  na  "fp"  miesto
  "stdout".(skupina 1)
4.44            sprintf(s,control,arg,....)
          char   *s,*control
  Chova sa ako printf okrem toho ze miesto  "stdout"  je  vystup
  retazec "s". Pole "s" musi byt  dostatocne  dlhe  na  to  ,aby
  nedoslone k premazaniu (skupina 1)
4.45            scanf(control,arg1,arg2,....)
          char  *control;
          Vsetky argumenty musia byt typu pointer
  Funkcia je analogiou BASIC  prikazu  INPUT  ,  prevadza  mnohe
  konverzie. Cita znaky zo standartneho vstupu ,interpretuje ich
  podla specifikovaneho formatu urceneho v "control" a  vysledok
  uchovava v  argumentoch  ktore  musia  byt  typu  ukazovatel!!
     Retazec "control" obsahuje konverzne prepinace ,ktore  budu
  pouzite pri spracovani vstupu.
       -  medzery  ,ktore   koresponduju    z    medzeramy    na
          ekvivalentnych poziciach na vsupe
       - lubovolny znak (nie %) musi korespondovat so vstupom
       -  konverzny  prepinac  zacinajuci  "%", volitelne  este
          potlacovatelsky znak "*"a  cislo  specifikujuce  dlzku
          pola a konvertovaneho znku
  Konverzna specifikacia urcuje ako sa spracuje vstupne  pole  .
  Normalne bude vysledok ulozeny do premennej na  ktoru  ukazuje
  argument .Cize ako argument sa obycajne  pouziva  "&"+premenna
  (&ptr) .Ak bol pouzity  znak  "*"  potom  bude  nacitane  pole
  preskocene  a  ignorovane.  Vstupne  pole  je  definovane  ako
  retazec znakov bez medzier  (okrem  tych  ktore  koresponduju
  s medzerami v  "control")  .Preto  sa  moze  stat  ze  retazec
  "alpha"  nemusi  suhlasit  s  retazcom  "alp  ha"    .Pouzitim
  ENTER,medzery a tabulatoru mozeme oddelovat polia pre scanf
     Konverzne znaky indikujuce interpretaciu vstupneho  retazca
  a korespondujuce argumenty  musia  byt  ukazovatele  splnajuce
  pravidla "volania podla hodnoty". Pripustne konverzne znaky su
      d   ocakava sa  desiatkove  cislo,korespondujuci  argument
          musi byt ukazovatel na integer
      o   ocakava sa oktalne cislo s alebo bez  predchadzajuceho
          O,integer ukazovatel.
      x   hexadecimalne cislo s alebo bez Ox,integer ukazovatel
      h   kratke cislo v tejto implementacii je argument integer
          ukazovatel
      c   jeden znak .Cita sa nasledujuci  znak  bez  ohladu  na
          medzery a priraduje sa argumentu ktory  je  typu  char
          ukazovatel
      s   retazec .Argument je ukazatel do pola znakov.  Retazec
          musi byt ukonceny '\0'
  Konverzne prepinace d,o,x mozu byt postavene za  prepinac  "l"
  ktory v kompilatore udava  dlhe  cele  cisla  ,to  znamena  ze
  argumenty ukazuju na long integer. Tu je ignorovany.