2 svar
71 visningar
Didar 208
Postad: 24 okt 2022 16:04

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';

Fermatrix 7841 – Fd. Medlem
Postad: 24 okt 2022 16:06 Redigerad: 24 okt 2022 16:06

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.

Laguna 28587
Postad: 24 okt 2022 16:22 Redigerad: 24 okt 2022 16:23

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.

 

Svara Avbryt
Close