```/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @return string字符串
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
#include<string.h>
char* ReverseSentence(char* str ) {
// write code here
char *stack=(char*)malloc(sizeof(char) * 100);//栈,临时保存两个空格之间的字母
int top=0;//栈顶
char *res=(char*)malloc(sizeof(char) * 100);//输出结果
int j=0;//输出结果的索引
int len=strlen(str);//字符串长度
int i=len-1;//最后一个字符的索引
while(i>=0){
//从str的最后一个字符向第一个字符进行遍历
if(str[i]!=' '){//如果不是空格,入栈
stack[top++]=str[i];
}else{//如果是空格,将栈中的字符全部存入res
while(top>0)res[j++]=stack[--top];
res[j++]=' ';
}
i--;
}
//当i==0时,最后一个字母存入栈中,但没有保存到res
while(top>0)res[j++]=stack[--top];
res[j]='\0';
return res;
}