2
svar
83
visningar
vad gör följande kod?
Hej Vad gör följande kod, kan någon förklara lite kort ?
str[strlen(str)-1] = '\0';
I C så vet man att man läst "klart" strängen när man träffar på \0, det kallas att en sträng är null-terminated. I detta fallet säger man att slutet av strängen sker vid index: strlen(str)-1.
Den koden tar bort sista tecknet i strängen. Sammanhanget är förmodligen att strängen är inläst från terminal eller fil och man vet att den slutar med '\n', och man vill ta bort det.
Det går inte bra om den inte slutar på '\n', och inte bra alls om det är tomma strängen.
Det säkraste är att leta efter '\n' med strchr och sedan nollställa den bara om den fanns där.