2 svar
52 visningar
Didar 207
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';

Dracaena 6919 – Moderator
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 24019
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