15 Reťazce v jazyku C
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Reťazec v jazyku C je pole znakov ukončené znakom '\0', ktorý označuje koniec reťazca; bez neho by reťazec pokračoval až po najbližšiu nulu v pamäti. Reťazec možno definovať staticky (pole typu char, kde je jediná možnosť priamo priradiť hodnotu pri inicializácii) alebo dynamicky cez pointer a funkciu malloc, pričom pamäť sa uvoľňuje cez free. Hodnotu do reťazca sa inak priraďuje funkciou strcpy z knižnice string.h a vypisuje sa formátom %s. Prednáška ďalej predstavuje funkcie strlen, strcmp, strstr a strchr, prístup k jednotlivým znakom ako k poľu, generovanie náhodného reťazca a nebezpečenstvo prepísania koncovej nuly alebo prekročenia rozsahu poľa, ktoré kompilátor väčšinou neošetruje.
- - Reťazec je pole znakov ukončené znakom '\0'.
- - Statický reťazec sa dá naplniť priamym priradením len pri definícii, inak sa používa strcpy.
- - Dynamický reťazec sa vytvára cez pointer a malloc (v halde) a uvoľňuje sa cez free.
- - Funkcia strlen vracia reálnu dĺžku reťazca bez koncovej nuly, nie veľkosť alokovanej pamäte.
- - Ďalšie funkcie: strcmp na porovnanie, strstr na hľadanie podreťazca, strchr na hľadanie znaku.
- - K znakom reťazca možno pristupovať ako k prvkom poľa, napr. vo for cykle alebo cez putchar.
- - Prepísanie koncovej nuly alebo zápis mimo rozsahu poľa spôsobuje chyby a kompilátor to zvyčajne neošetruje.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky