编辑代码

#include <stdio.h>
#include <stdlib.h>

void reverse(char *begin,char *end)
{
    char size = 0;
    char ch = 0;

    size = end - begin +1;

    for(int i = 0; i < (size/2); i++)
    {
        ch = *(begin + i);
        *(begin + i) = *(end - i);
        *(end - i) = ch;
    } 
}

int main()
{
    char *str = (char *)malloc(64); //申请内存
    char ch = 0;
    int i =0;

    while((ch = getchar()) != '\n') //获取字符串
    {
        str[i++] = ch;
    }

    reverse(str,str + i - 1);//翻转整个字符串
  //  printf("%s\n",str);  

    char *begin = str, *end = str; 
    while(*end != '\0')
    {
        if(*end == ' ')
        {
            reverse(begin,end - 1);
            begin = end + 1;
        }   
        end++;       
    }

    reverse(begin,end -1);

    printf("%s\n",str); 
}