#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char sentence [] = "this is a sentence";
char *newSentence = (char *)malloc(strlen(sentence)+1);
int i,j,start, k;
start = 0;
for(i = 0;; i++)
{
if(sentence[i] == ' ' || sentence[i] == '\0') //sentence[i] == '\0' for the last word.
{
char *word = (char *)malloc((i - start)+1);
for(j = i-1, k = 0; j >= start; j--, k++)
{
word[k] = sentence[j];
}
word[k++] = ' '; //space after each word
word[k] = '\0';
strcat(newSentence,word);
start = i+1;
}
if (sentence[i] == '\0')
break;
}
printf("%s\n",newSentence);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiAgICAjaW5jbHVkZSA8c3RkbGliLmg+CiAgICAjaW5jbHVkZSA8c3RyaW5nLmg+CiAgICBpbnQgbWFpbih2b2lkKSB7CiAgICAgICAgY2hhciBzZW50ZW5jZSBbXSA9ICJ0aGlzIGlzIGEgc2VudGVuY2UiOwogICAgICAgIGNoYXIgKm5ld1NlbnRlbmNlID0gKGNoYXIgKiltYWxsb2Moc3RybGVuKHNlbnRlbmNlKSsxKTsKICAgICAgICBpbnQgaSxqLHN0YXJ0LCBrOwogICAgICAgIHN0YXJ0ID0gMDsKICAgIAogICAgICAgIGZvcihpID0gMDs7IGkrKykKICAgICAgICB7CiAgICAKICAgICAgICAgICAgaWYoc2VudGVuY2VbaV0gPT0gJyAnIHx8IHNlbnRlbmNlW2ldID09ICdcMCcpICAJLy9zZW50ZW5jZVtpXSA9PSAnXDAnIGZvciB0aGUgbGFzdCB3b3JkLgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGFyICp3b3JkID0gKGNoYXIgKiltYWxsb2MoKGkgLSBzdGFydCkrMSk7CiAgICAgICAgICAgICAgICBmb3IoaiA9IGktMSwgayA9IDA7IGogPj0gc3RhcnQ7IGotLSwgaysrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHdvcmRba10gPSBzZW50ZW5jZVtqXTsKICAgICAgICAgICAgICAgIH0KICAgIAkgICAgd29yZFtrKytdID0gJyAnOwkJCQkJLy9zcGFjZSBhZnRlciBlYWNoIHdvcmQKICAgIAkgICAgd29yZFtrXSA9ICdcMCc7CQkJCQkKICAgIAogICAgICAgICAgICAgICAgc3RyY2F0KG5ld1NlbnRlbmNlLHdvcmQpOwogICAgCiAgICAgICAgICAgICAgICBzdGFydCA9IGkrMTsKICAgICAgICAgICAgfQogICAgCiAgICAJaWYgKHNlbnRlbmNlW2ldID09ICdcMCcpCiAgICAJCWJyZWFrOwogICAgICAgIH0KICAgICAgICBwcmludGYoIiVzXG4iLG5ld1NlbnRlbmNlKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0=