Solution:
Reverse whole string and then reverse words in the reversed string.
void reverse(char* str, int start, int end)
{
for(int i=start, j= end; i<j; ++i,--j)
{
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int wordReverse(char *str)
{
int len = strlen(str);
reverse(str,0,len-1);
for(int i=0,j=0;;)
{
while(str[j] != '\0' && str[j++] != ' ');
if(str[j] == '\0')
{
reverse(str, i, j-1);
break;
}
reverse(str,i,j-2);
i=j;
}
}
No comments:
Post a Comment