代码
#include <iostream>
#include <utility>
using namespace std;
//先逆转整个字符串,然后再逐单词逆转
char * reveser_str(char *beg,char *end=NULL)
{
if (end==NULL)
{
end=beg;
while(*end!='\0')
{
++end;
}
--end;
}
char *p=beg;
while(p<end)
{
swap(*p,*end);
++p;
--end;
}
return beg;
}
char* reveser_by_word(char *str)
{
reveser_str(str);
char *beg=str,*end=str;
while(*end!='\0')
{
if (*end==' ')
{
reveser_str(beg,end-1);
beg = end+1;
}
++end;
}
reveser_str(beg,end-1);
return str;
}
int main()
{
char str[256];
while (cin.getline(str,sizeof(str)))
{
cout<<reveser_by_word(str)<<endl;
}
return 0;
}