Это вращает строку. Это делается путем перемещения первого символа в последнее место с помощью команды str[n] = str[0]
(str[n]
- завершающий строку нулевой символ '\0'
, затем смещение всей строки на единицу (str[j] = str[j+1]
), затем замена ноль в конце (str[n]='\0'
).
Этот код, если бы он использовал s
, вызвал бы переполнение буфера, если строка длиннее 14 символов. Однако в коде также есть логическая ошибка: он должен либо инициализировать str
(как char*
, а не int*
), либо сканировать в s
с ограниченной длиной. Например:
scanf("%14s", s);
или
str = (char*)malloc(500);
scanf("%500s", str);