/* Example to reverse a sentence entered by user without using strings. */
#include <stdio.h>
void reverseSentence();
int main()
{
printf("Enter a sentence: ");
reverseSentence();
return 0;
}
void reverseSentence()
{
char c;
scanf("%c", &c);
if( c != '\n')
{
reverseSentence();
printf("%c",c);
}
}
Enter a sentence: margorp emosewa
awesome program
This program first prints "Enter a sentence: ". Then, immediately reverseSentence() function is called.
This function stores the first letter entered by user in variable c. If the variable is any character other than '\n' [ enter character], reverseSentence() function is called again.
When reverseSentence() is called the second time, the second letter entered by the user is stored in c again.
But, the variable c in the second function isn't the same as the first. They both take different space in the memory.
This process goes on until user enters '\n'.
When, the user finally enters '\n', the last function reverseSentence() function prints the last character because of printf("%c", c); and returns to the second last reverseSentence()function.
Again, the second last reverseSentence() function prints the second last character and returns to the third last reverseSentence() function.
This process goes on and the final output will be the reversed sentence.
First read the algorithm, then study the program code line by line. After that, compare the code with the output and finally go through the explanation. This approach helps learners understand both the logic and the implementation properly.
After understanding this example, try to rewrite the same program without looking at the code. Then change some values or logic and run it again. This helps improve confidence and keeps learners engaged on the page for longer.