Čo znamená tá podmienka "if(strlen(nacteno) == 1)"? Dúfam, že znak '\0' nepočítaš do dĺžky reťazca.
Prečo potrebuješ skrátiť hodnotu v nacteno o jeden znak? (nacteno[strlen(nacteno)-1] = '\0';)
Keď už toľko pracuješ s hodnotou strlen(nacteno), bolo by celkom dobré si ju uložiť do premennej.
Toto je blbosť:
strncpy(radka, nacteno, strlen(nacteno));
To by si už rovno mohol použiť strcpy. Keď alokuješ presne toľko miesta, koľko ideš kopírovať, tak nemá zmysel použiť strncpy. Alebo pre istotu tam dať tú MAX_DELKA_VSTUPU (predpokladám, že pre premennú nacteno máš alokovaných toľko bajtov).