In
printf("%s", word[i]);
% s - неправильный формат, потому что вы пишете символ, а не строку
Из этого числа:
естественный тип для индекса size_t
, а не int , используйте size_t
для обоих i и len , и в этомcase изменить цикл для использования индекса без предположения, что он может быть отрицательным
, если входная строка содержит более 19 символов scanf запишет из word с неопределенным поведением, ограничить размер, используя формат% 19s (19 вместо 20, чтобы иметь место для завершающего нулевого символа)
слово isмассив, не используйте '&' для указания его адреса в scanf
проверьте результат scanf , если вы хотите обнаружитьEOF
очистить вывод, записав новую строку после цикла
Таким образом, возможный путь:
char word[20];
printf("Enter word: ");
if (scanf("%19s", word) == 1) {
printf("String reversed: ");
for (size_t i = strlen(word); i != 0; i--){
printf("%c", word[i-1]);
}
putchar('\n');
}