char* reverseWords(char* s) {
int len=strlen(s);
int i=0,j=0;
int flag=0;
//将多余的空格除去
for(j=0;j<len;j++){
if(s[j]==' ')
{
if(flag==0&&i!=0)
{
s[i]=' ';
i=i+1;
flag=1;
}
}
else
{
s[i]=s[j];
i=i+1;
flag=0;
}
}
if(i>=1&&s[i-1]==' ')
{
s[i-1]='\0';
}
else
{
s[i]='\0';
}
//将整个字符串反转
len=strlen(s);
i=0,j=len-1;
while(i<j)
{
char temp=s[i];
s[i++]=s[j];
s[j--]=temp;
}
//
//将每个单词进行反转
i=0,j=0;
while(s[j])
{
if(s[j]!=' ')
{
j++;
}
else
{
int t=j-1;
while(i<t)
{
char temp=s[i];
s[i++]=s[t];
s[t--]=temp;
}
i=++j;
}
}
int t=j-1;
while(i<t)
{
char temp=s[i];
s[i++]=s[t];
s[t--]=temp;
}
//
return s;
}