Knižnica string.h
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
Prednáška vysvetľuje, prečo v jazyku C nemožno reťazce (polia znakov ukončené znakom '\0') porovnávať operátorom == ani kopírovať priradením, a predstavuje štandardnú knižnicu string.h. Na príklade s podmienkou if sa ukazuje, že priame porovnanie premennej s textovým literálom porovnáva adresy, nie obsah, a preto program vypíše nesprávnu vetvu. Riešením sú funkcie knižnice: strcmp na porovnanie, strcpy na kopírovanie, strlen na zistenie dĺžky a strstr na vyhľadanie podreťazca. Funkcia strcmp vracia 0 pri zhode, záporné alebo kladné číslo podľa lexikografického poradia. Funkcia strlen nezapočítava ukončovací nulový znak a strstr vracia reťazec od prvého nájdeného výskytu.
- - Reťazce v C sú polia znakov ukončené znakom '\0'.
- - Operátor == na reťazcoch porovnáva adresy, nie obsah, preto nefunguje správne.
- - strcmp(str1, str2) vráti 0 pri zhode, záporné číslo ak je str1 menší, kladné ak je väčší.
- - Priradenie meno2 = meno1 pri poliach nefunguje, na kopírovanie sa používa strcpy(cieľ, zdroj).
- - strlen vráti počet znakov bez ukončovacieho nulového znaku.
- - strstr(haystack, needle) hľadá podreťazec a vráti zvyšok reťazca od prvého výskytu, alebo nič (NULL), ak sa nenachádza.
- - Najdôležitejšie funkcie z string.h sú strcmp, strcpy a strlen.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky