XYZ *** KM*Q**RT*";
char symb = '*' ;
int k, n;
k = n = 0;
while (st[k] != '\0' )
{
if (st[k] == symb)
{
k++;
}
else
{
st[n] = st[k];
n++;
k++;
}
}
st[n] = '\0';
printf("%s", st);
return 0;
}
может кто-то обьяснить, как работает этот код со строкой? програма удаляет все '*' из строки. Не могу понять, как он работает, начиная с int n, k...хоть кратко, но дайте понять)
обычно новичкам он не отвечает
Кавычки на отдельной строке должны быть
не обязательно, нужно чтобы перед первыми тремя и после последних пробел был
ВОт тут else { st[n] = st[k]; n++; k++; } всё сдвигается "вниз" (к началу) на один символ. Так и работает
А зачем в конце мы пишем st[n]='\0'?
Затем, что сишные строки нуль-терминированы
Чтобы обещать хвост, старая длина минус новая
Обсуждают сегодня