Given a sentence reverse the words of the sentence but not the characters in the words.
For Example:
If the input string is "CodeRegister Loves Coding"
then the output should be "Coding Loves CodeRegister"
Implementation:
For Example:
If the input string is "CodeRegister Loves Coding"
then the output should be "Coding Loves CodeRegister"
Implementation:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/* Function reverse to print the word from next character of a ' ' character
till ' ' character or '\0' character */
void reverse(char *s,int n)
{
/* If we come across a space character or a null character, stop the recursive call */
if(*(s+n)=='\0' || *(s+n)==' ')
return;
/* Until that print every character */
printf("%c",*(s+n));
/* And call the recursive function */
reverse(s,n+1);
}
int main()
{
char *s;
int i;
/* allocate memory block of 256 characters & assign starting address
to character pointer 's' */
s=(char*)malloc(sizeof(char)*256);
/* Get the sentence from the user */
gets(s);
/* calculate the size of the sentence using strlen() library function */
i=strlen(s)-1;
/* until the index 0 */
while(i>=-1)
{
/* traverse from last character of the sentence until we encounter a space */
if(*(s+i)==' ' || i==-1)
{
/* Reverse the string from index next to space until another space or
null character */
reverse(s,i+1);
/* Print a space for every word */
printf(" ");
}
/* Decrease the index pointer of the string */
i--;
}
return 0;
}