Я смотрю на строковые манипуляции в C, и я не понимаю, почему оператор s1[i] = s1[++i];
не заменит первый H
на следующий символ e
. Взгляните на код:
#include <stdio.h>
main()
{
char s1[] = "Hello world !";
for(int i = 0; s1[i] != '\0'; ++i)
s1[i] = s1[++i];
printf("%s", s1);
}
Он печатает Hello world !
вместо el r