c[i]
совпадает с &c[i][0]
из-за массива -> преобразование указателя.
c[i] + 1
совпадает с &c[i][1]
.
По этой причине использование
scanf("%s", c[i]+1);
действителен с синтаксической точки зрения.
Однако имейте в виду, что если входные данные слишком велики для размещения в заданном месте, вы столкнетесь с проблемой доступа к массиву за пределами допустимых границ. Будет лучше использовать
scanf("%98s", c[i]+1);
В c[i]+1
есть 99 символов. Вы должны иметь место для завершающего нулевого символа. Следовательно, использование %98s
.