i have this reverse word function. it simply adding word to new string in reverse order . the problem with this code is it not print the last word ( first word before reverse ) . i dont know why . please help fix my code
    char str[100], revstr[100];
    int i, j, index, len, startIndex, endIndex;
    printf("\n Please Enter any String :  ");
    gets(str);
    len = strlen(str);
    index = 0;
    endIndex = len - 1;
    printf("\n *****  Given String in Reverse Order  ***** \n");        
    for(i = len - 1; i > 0; i--)
    {
        if(str[i] == ' ')
        {
            startIndex = i + 1;
            for(j = startIndex; j <= endIndex; j++)
            {
                revstr[index] = str[j];
                index++;
            }
            revstr[index++] = ' ';
            endIndex = i - 1;               
        } 
    }
    printf("\n Given String in Reverse Order = %s", revstr); 
    return 0;
 
    