Я пытаюсь напечатать свою строку в обратном направлении в c, и я просто не могу заставить ее работать с пробелами.Мне известно, что если после последнего возвращенного символа в функции scanf есть какие-либо пробелы, он будет завершен, поскольку не осталось ни одного существующего символа для сканирования из введенной строки.Вот мой код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLETTERS 20
void readStringBackwards();
main()
{
readStringBackwards();
}
void readStringBackwards()
{
printf("Please enter a string of up to 20 characters in length:\n ");
char str[20];
scanf("%s", str);
int i;
int stringlength = strlen(str);
if (stringlength > MAXLETTERS)
{
printf("The string length is too long!");
}
else
{
for( i = stringlength-1; i >= 0; i--){
printf("%c ", str[i]);
}
}
}
По сути, программа должна принимать до 20 символов и печатать строку в обратном направлении.Я искал информацию о scanf и о том, как он работает, но найти прямой ответ было довольно сложно.Любые советы приветствуются.Прямо сейчас все, что я получу, является первым словом, которое я печатаю наоборот.Другие символы после пробела пропускаются и не сохраняются в массиве.